home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / var / lib / dpkg / info / console-setup.config < prev    next >
Encoding:
Text File  |  2007-04-10  |  64.3 KB  |  2,667 lines

  1. #!/bin/bash
  2.  
  3. #     Copyright ┬⌐ 2005 Anton Zinoviev <anton@lml.bas.bg>
  4.  
  5. #     This program is free software; you can redistribute it and/or modify
  6. #     it under the terms of the GNU General Public License as published by
  7. #     the Free Software Foundation; either version 2 of the License, or
  8. #     (at your option) any later version.
  9.  
  10. #     This program is distributed in the hope that it will be useful,
  11. #     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. #     GNU General Public License for more details.
  14.  
  15. #     If you have not received a copy of the GNU General Public License
  16. #     along with this program, write to the Free Software Foundation, Inc.,
  17. #     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18.  
  19. #                        ----------
  20. #                         CONTENTS
  21. #                        ----------
  22. #
  23. # 1. Initialise $fontsets, $charmaps and $kbdnames with the supported
  24. #    fontsets, charmaps, keyboard models, layouts and variants.  These
  25. #    lists can not be computed because the config script is invoked
  26. #    during the preconfiguration phase and the available fonts, ACM,
  27. #    etc. are not yet unpacked.
  28. #
  29. # 2. Function ask_debconf.  Ask user to choose amongst the options
  30. #    listed in $fontsets, $charmaps and $kbdnames.
  31. #
  32. # 3. Function guess_arch - detect the architecture and subarchitecture
  33. #
  34. # 4. Function available_fontsets - lists all fontfaces that can be
  35. #    used with $codeset.
  36. #
  37. # 5. Function available_fontsizes - lists all font sizes that can be
  38. #    used with the $codeset-$fontface combination.
  39. #
  40. # 6. Set $locale.  Set $default_codeset and $codeset_priority acording
  41. #    to $locale.
  42. #
  43. # 7. Set $default_layout and acording to $locale. default_variant=''
  44. #
  45. # 8. Set $default_charmap and $charmap_priority acording to $locale.
  46. #
  47. # 9. Set $arch.  Set $default_model and $model_priority acording to
  48. #    $arch.
  49. #
  50. # 10. Read /etc/default/console-setup and store values into debconf
  51. #     db.  Four very long case instructions in order to translate
  52. #     options like "grp:caps_toggle" to human-readable strings like
  53. #     "Caps Lock".
  54. #
  55. # 11. Ask the Debconf questions starting from STATE=1 and ending after
  56. #     STATE=9.  Again four long case instructions in STATE=4 to
  57. #     translate "Caps Lock" to "grp:caps_toggle".
  58.  
  59. # This script would be simpler and faster if written in Perl but with
  60. # Shell it can be used in the Installer
  61.  
  62. set -e
  63.  
  64. . /usr/share/debconf/confmodule
  65.  
  66. CONFIGFILE=/etc/default/console-setup
  67.  
  68. package=console-setup
  69. # package=console-setup
  70.  
  71. fontsets='Arabic-Fixed15
  72. Arabic-Fixed16
  73. Arabic-VGA14
  74. Arabic-VGA16
  75. Arabic-VGA8
  76. Armenian-Fixed13
  77. Armenian-Fixed14
  78. Armenian-Fixed15
  79. Armenian-Fixed16
  80. Armenian-Fixed18
  81. CyrAsia-Fixed13
  82. CyrAsia-Fixed14
  83. CyrAsia-Fixed15
  84. CyrAsia-Fixed16
  85. CyrAsia-Fixed18
  86. CyrAsia-Terminus12x6
  87. CyrAsia-Terminus14
  88. CyrAsia-Terminus16
  89. CyrAsia-Terminus20x10
  90. CyrAsia-Terminus24x12
  91. CyrAsia-Terminus28x14
  92. CyrAsia-Terminus32x16
  93. CyrAsia-TerminusBold14
  94. CyrAsia-TerminusBold16
  95. CyrAsia-TerminusBold20x10
  96. CyrAsia-TerminusBold24x12
  97. CyrAsia-TerminusBold28x14
  98. CyrAsia-TerminusBold32x16
  99. CyrAsia-TerminusBoldVGA14
  100. CyrAsia-TerminusBoldVGA16
  101. CyrKoi-Fixed13
  102. CyrKoi-Fixed14
  103. CyrKoi-Fixed15
  104. CyrKoi-Fixed16
  105. CyrKoi-Fixed18
  106. CyrKoi-Terminus12x6
  107. CyrKoi-Terminus14
  108. CyrKoi-Terminus16
  109. CyrKoi-Terminus20x10
  110. CyrKoi-Terminus24x12
  111. CyrKoi-Terminus28x14
  112. CyrKoi-Terminus32x16
  113. CyrKoi-TerminusBold14
  114. CyrKoi-TerminusBold16
  115. CyrKoi-TerminusBold20x10
  116. CyrKoi-TerminusBold24x12
  117. CyrKoi-TerminusBold28x14
  118. CyrKoi-TerminusBold32x16
  119. CyrKoi-TerminusBoldVGA14
  120. CyrKoi-TerminusBoldVGA16
  121. CyrKoi-VGA14
  122. CyrKoi-VGA16
  123. CyrKoi-VGA8
  124. CyrSlav-Fixed13
  125. CyrSlav-Fixed14
  126. CyrSlav-Fixed15
  127. CyrSlav-Fixed16
  128. CyrSlav-Fixed18
  129. CyrSlav-Terminus12x6
  130. CyrSlav-Terminus14
  131. CyrSlav-Terminus16
  132. CyrSlav-Terminus20x10
  133. CyrSlav-Terminus24x12
  134. CyrSlav-Terminus28x14
  135. CyrSlav-Terminus32x16
  136. CyrSlav-TerminusBold14
  137. CyrSlav-TerminusBold16
  138. CyrSlav-TerminusBold20x10
  139. CyrSlav-TerminusBold24x12
  140. CyrSlav-TerminusBold28x14
  141. CyrSlav-TerminusBold32x16
  142. CyrSlav-TerminusBoldVGA14
  143. CyrSlav-TerminusBoldVGA16
  144. CyrSlav-VGA14
  145. CyrSlav-VGA16
  146. CyrSlav-VGA8
  147. Ethiopian-Fixed15
  148. Ethiopian-Fixed18
  149. Ethiopian-Goha12
  150. Ethiopian-Goha14
  151. Ethiopian-Goha16
  152. Ethiopian-GohaClassic12
  153. Ethiopian-GohaClassic14
  154. Ethiopian-GohaClassic16
  155. Georgian-Fixed13
  156. Georgian-Fixed14
  157. Georgian-Fixed15
  158. Georgian-Fixed16
  159. Georgian-Fixed18
  160. Greek-Fixed13
  161. Greek-Fixed14
  162. Greek-Fixed15
  163. Greek-Fixed16
  164. Greek-Fixed18
  165. Greek-VGA14
  166. Greek-VGA16
  167. Greek-VGA8
  168. Hebrew-Fixed13
  169. Hebrew-Fixed14
  170. Hebrew-Fixed15
  171. Hebrew-Fixed16
  172. Hebrew-Fixed18
  173. Hebrew-VGA14
  174. Hebrew-VGA16
  175. Hebrew-VGA8
  176. Lao-Fixed14
  177. Lao-Fixed15
  178. Lao-Fixed16
  179. Lat15-Fixed13
  180. Lat15-Fixed14
  181. Lat15-Fixed15
  182. Lat15-Fixed16
  183. Lat15-Fixed18
  184. Lat15-Terminus12x6
  185. Lat15-Terminus14
  186. Lat15-Terminus16
  187. Lat15-Terminus20x10
  188. Lat15-Terminus24x12
  189. Lat15-Terminus28x14
  190. Lat15-Terminus32x16
  191. Lat15-TerminusBold14
  192. Lat15-TerminusBold16
  193. Lat15-TerminusBold20x10
  194. Lat15-TerminusBold24x12
  195. Lat15-TerminusBold28x14
  196. Lat15-TerminusBold32x16
  197. Lat15-TerminusBoldVGA14
  198. Lat15-TerminusBoldVGA16
  199. Lat15-VGA14
  200. Lat15-VGA16
  201. Lat15-VGA8
  202. Lat2-Fixed13
  203. Lat2-Fixed14
  204. Lat2-Fixed15
  205. Lat2-Fixed16
  206. Lat2-Fixed18
  207. Lat2-Terminus12x6
  208. Lat2-Terminus14
  209. Lat2-Terminus16
  210. Lat2-Terminus20x10
  211. Lat2-Terminus24x12
  212. Lat2-Terminus28x14
  213. Lat2-Terminus32x16
  214. Lat2-TerminusBold14
  215. Lat2-TerminusBold16
  216. Lat2-TerminusBold20x10
  217. Lat2-TerminusBold24x12
  218. Lat2-TerminusBold28x14
  219. Lat2-TerminusBold32x16
  220. Lat2-TerminusBoldVGA14
  221. Lat2-TerminusBoldVGA16
  222. Lat2-VGA14
  223. Lat2-VGA16
  224. Lat2-VGA8
  225. Lat38-Fixed13
  226. Lat38-Fixed14
  227. Lat38-Fixed15
  228. Lat38-Fixed16
  229. Lat38-Fixed18
  230. Lat38-VGA14
  231. Lat38-VGA16
  232. Lat38-VGA8
  233. Lat7-Fixed13
  234. Lat7-Fixed14
  235. Lat7-Fixed15
  236. Lat7-Fixed16
  237. Lat7-Fixed18
  238. Lat7-Terminus12x6
  239. Lat7-Terminus14
  240. Lat7-Terminus16
  241. Lat7-Terminus20x10
  242. Lat7-Terminus24x12
  243. Lat7-Terminus28x14
  244. Lat7-Terminus32x16
  245. Lat7-TerminusBold14
  246. Lat7-TerminusBold16
  247. Lat7-TerminusBold20x10
  248. Lat7-TerminusBold24x12
  249. Lat7-TerminusBold28x14
  250. Lat7-TerminusBold32x16
  251. Lat7-TerminusBoldVGA14
  252. Lat7-TerminusBoldVGA16
  253. Lat7-VGA14
  254. Lat7-VGA16
  255. Lat7-VGA8
  256. Thai-Fixed13
  257. Thai-Fixed14
  258. Thai-Fixed15
  259. Thai-Fixed16
  260. Thai-Fixed18
  261. Uni1-Fixed15
  262. Uni1-Fixed16
  263. Uni1-VGA14
  264. Uni1-VGA16
  265. Uni1-VGA8
  266. Uni2-Fixed13
  267. Uni2-Fixed14
  268. Uni2-Fixed15
  269. Uni2-Fixed16
  270. Uni2-Fixed18
  271. Uni2-VGA14
  272. Uni2-VGA16
  273. Uni2-VGA8
  274. Uni3-Fixed13
  275. Uni3-Fixed14
  276. Uni3-Fixed15
  277. Uni3-Fixed16
  278. Uni3-Fixed18
  279. Uni3-Terminus12x6
  280. Uni3-Terminus14
  281. Uni3-Terminus16
  282. Uni3-Terminus20x10
  283. Uni3-Terminus24x12
  284. Uni3-Terminus28x14
  285. Uni3-Terminus32x16
  286. Uni3-TerminusBold14
  287. Uni3-TerminusBold16
  288. Uni3-TerminusBold20x10
  289. Uni3-TerminusBold24x12
  290. Uni3-TerminusBold28x14
  291. Uni3-TerminusBold32x16
  292. Uni3-TerminusBoldVGA14
  293. Uni3-TerminusBoldVGA16
  294. Vietnamese-Fixed13
  295. Vietnamese-Fixed14
  296. Vietnamese-Fixed15
  297. Vietnamese-Fixed16
  298. Vietnamese-Fixed18
  299. '
  300. # fontsets='Arabic-Fixed15
  301. # Arabic-Fixed16
  302. # Arabic-vga14
  303. # ... 
  304. # Vietnamese-Fixed18
  305. # '
  306.  
  307. charmaps='ARMSCII-8
  308. CP1251
  309. CP1255
  310. CP1256
  311. GEORGIAN-ACADEMY
  312. GEORGIAN-PS
  313. IBM1133
  314. ISIRI-3342
  315. ISO-8859-1
  316. ISO-8859-10
  317. ISO-8859-11
  318. ISO-8859-13
  319. ISO-8859-14
  320. ISO-8859-15
  321. ISO-8859-16
  322. ISO-8859-2
  323. ISO-8859-3
  324. ISO-8859-4
  325. ISO-8859-5
  326. ISO-8859-6
  327. ISO-8859-7
  328. ISO-8859-8
  329. ISO-8859-9
  330. KOI8-R
  331. KOI8-U
  332. TIS-620
  333. VISCII
  334. UTF-8'
  335.  
  336. # charmaps='ARMSCII-8
  337. # CP1251
  338. # CP1255
  339. # ...
  340. # UTF-8'
  341.  
  342. kbdnames='model*dinovo*Logitech diNovo Keyboard
  343. model*amiga*Amiga
  344. model*acer_c300*Acer C300
  345. model*yahoo*Yahoo! Internet Keyboard
  346. model*macintosh*Macintosh
  347. model*dell101*Dell 101-key PC
  348. model*mx2500*Memorex MX2500 EZ-Access Keyboard
  349. model*geniuscomfy2*Genius Comfy KB-21e-Scroll
  350. model*pc98*PC-98xx Series
  351. model*hp2505*Hewlett-Packard SK-2505 Internet Keyboard
  352. model*dell*Dell
  353. model*logiinkseusb*Logitech iTouch Internet Navigator Keyboard SE (USB)
  354. model*ipaq*Compaq iPaq Keyboard
  355. model*sk1300*SK-1300
  356. model*mx2750*Memorex MX2750
  357. model*scorpius*Advance Scorpius KI
  358. model*compaqik18*Compaq Internet Keyboard (18 keys)
  359. model*brother*Brother Internet Keyboard
  360. model*acpi*ACPI Standard
  361. model*pc105*Generic 105-key (Intl) PC
  362. model*btc9019u*BTC 9019U
  363. model*gyration*Gyration
  364. model*rapidaccess2a*IBM Rapid Access II (alternate option)
  365. model*acer_ferrari4k*Acer Ferrari 4000
  366. model*qtronix*QTronix Scorpius 98N+
  367. model*dellusbmm*Dell USB Multimedia Keybard
  368. model*hp2501*Hewlett-Packard SK-2501 Multimedia Keyboard
  369. model*hpxt1000*Hewlett-Packard Omnibook XT1000
  370. model*diamond*Diamond 9801 / 9802 series
  371. model*hpxe3gc*Hewlett-Packard Omnibook XE3 GC
  372. model*samsung4510*Samsung SDM 4510P
  373. model*pc104*Generic 104-key PC
  374. model*emachines*Laptop/notebook eMachines m68xx
  375. model*trustda*Trust Direct Access Keyboard
  376. model*btc5090*BTC 5090
  377. model*dexxa*Dexxa Wireless Desktop Keyboard
  378. model*genius*Genius Comfy KB-16M / Genius MM Keyboard KWD-910
  379. model*geniuskb19e*Genius KB-19e NB
  380. model*btc5126t*BTC 5126T
  381. model*rapidaccess*IBM Rapid Access
  382. model*jp106*Japanese 106-key
  383. model*chicony9885*Chicony KB-9885
  384. model*thinkpad*IBM ThinkPad 560Z/600/600E/A22E
  385. model*trust*Trust Wireless Keyboard Classic
  386. model*mx1998*Memorex MX1998
  387. model*sk7100*SK-7100
  388. model*btc5113rf*BTC 5113RF Multimedia
  389. model*microsoftprousb*Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro
  390. model*btc9000*BTC 9000
  391. model*sp_inet*Super Power Multimedia Keyboard
  392. model*macbook79*MacBook/MacBook Pro (Intl)
  393. model*kr106*Korean 106-key
  394. model*hpi6*Hewlett-Packard Internet Keyboard
  395. model*macintosh_old*Macintosh Old
  396. model*hp6000*Hewlett-Packard Omnibook 6000/6100
  397. model*btc9001ah*BTC 9001AH
  398. model*logicink*Logitech Internet Navigator Keyboard
  399. model*logicdp*Logitech Cordless Desktop Pro
  400. model*omnikey101*Northgate OmniKey 101
  401. model*cherrycyboard*Cherry CyBo@rd USB-Hub
  402. model*armada*Laptop/notebook Compaq (eg. Armada) Laptop Keyboard
  403. model*macbook78*MacBook/MacBook Pro
  404. model*abnt2*Brazilian ABNT2
  405. model*microsoftmult*Microsoft Wireless Multimedia Keyboard 1.0A
  406. model*pc101*Generic 101-key PC
  407. model*logicdo*Logitech Cordless Desktop Optical
  408. model*microsoftprose*Microsoft Internet Keyboard Pro, Swedish
  409. model*itouch*Logitech iTouch
  410. model*hpzt11xx*Hewlett-Packard Pavilion ZT11xx
  411. model*geniuscomfy*Genius Comfy KB-12e
  412. model*logiultrax*Logitech Ultra-X Keyboard
  413. model*cherryblueb*Cherry CyMotion Master XPress
  414. model*hp5xx*Hewlett-Packard Omnibook 5xx
  415. model*logicdpa*Logitech Cordless Desktop Pro (alternate option)
  416. model*apple*Apple
  417. model*microsoftinet*Microsoft Internet Keyboard
  418. model*samsung4500*Samsung SDM 4500P
  419. model*logiik*Logitech Internet Keyboard
  420. model*cherryblue*Cherry Blue Line CyBo@rd
  421. model*chicony*Chicony Internet Keyboard
  422. model*powerpcps2*PowerPC PS/2
  423. model*compaqik13*Compaq Internet Keyboard (13 keys)
  424. model*a4_rfkb23*A4Tech Wireless Desktop RFKB-23
  425. model*ataritt*Atari TT
  426. model*silvercrest*SILVERCREST Multimedia Wireless Keyboard
  427. model*propeller*Propeller Voyager (KTEZ-1000)
  428. model*hp500fa*Hewlett-Packard Omnibook 500 FA
  429. model*symplon*Symplon PaceBook (tablet PC)
  430. model*microsoft*Microsoft Natural
  431. model*ltcd*Logitech Cordless Desktop
  432. model*logiinkse*Logitech iTouch Internet Navigator Keyboard SE
  433. model*latitude*Dell Latitude series laptop
  434. model*ennyah_dkb1008*Ennyah DKB-1008
  435. model*pc102*Generic 102-key (Intl) PC
  436. model*logiitc*Logitech iTouch Cordless Keyboard (model Y-RB6)
  437. model*cymotionlinux*Cherry CyMotion Master Linux
  438. model*sk6200*SK-6200
  439. model*everex*Everex STEPnote
  440. model*a4techKB21*A4Tech KB-21
  441. model*compaqik7*Compaq Internet Keyboard (7 keys)
  442. model*apple_laptop*Apple Laptop
  443. model*thinkpadintl*IBM ThinkPad 560Z/600/600E/A22E, Intl
  444. model*winbook*Winbook Model XP5
  445. model*logiclx300*Logitech Cordless Desktop LX-300
  446. model*logicdn*Logitech Cordless Desktop Navigator
  447. model*rapidaccess2*IBM Rapid Access II
  448. model*sun4*Sun Type 4
  449. model*presario*Laptop/notebook Compaq (eg. Presario) Internet Keyboard
  450. model*logicdpa2*Logitech Cordless Desktop Pro (alternate option2)
  451. model*evdev*Evdev-managed keyboard
  452. model*microsoftoffice*Microsoft Office Keyboard
  453. model*honeywell_euroboard*Honeywell Euroboard
  454. model*dtk2000*DTK2000
  455. model*logicfn*Logitech Cordless Freedom/Desktop Navigator
  456. model*acer_tm_800*Acer TravelMate 800
  457. model*airkey*Acer AirKey V
  458. model*toshiba_s3000*Toshiba Satellite S3000
  459. model*sk2500*SK-2500
  460. model*azonaRF2300*Azona RF2300 wireless Internet Keyboard
  461. model*hpxe3gf*Hewlett-Packard Omnibook XE3 GF
  462. model*microsoftprooem*Microsoft Natural Keyboard Pro OEM
  463. model*inspiron*Laptop/notebook Dell Inspiron 6xxx/8xxx
  464. model*logiaccess*Logitech Access Keyboard
  465. model*sun5*Sun Type 5
  466. model*btc9000a*BTC 9000A
  467. model*microsoftpro*Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro
  468. model*cherrybluea*Cherry Blue Line CyBo@rd (alternate option)
  469. model*logicdit*Logitech Cordless Desktop iTouch
  470. model*a4techKBS8*A4Tech KBS-8
  471. model*oretec*Oretec MCK-800 MM/Internet keyboard
  472. model*sven*SVEN Ergonomic 2500
  473. model*compaqeak8*Compaq Easy Access Keyboard
  474. model*flexpro*Keytronic FlexPro
  475. layout*sy*Syria
  476. variant*sy**Syria
  477. variant*sy*syc_phonetic*Syria - Syriac phonetic
  478. variant*sy*syc*Syria - Syriac
  479. variant*sy*ku*Syria - Kurdish, Latin Q
  480. variant*sy*ku_alt*Syria - Kurdish, Latin Alt-Q
  481. variant*sy*ku_f*Syria - Kurdish, (F)
  482. layout*se*Sweden
  483. variant*se**Sweden
  484. variant*se*dvorak*Sweden - Dvorak
  485. variant*se*nodeadkeys*Sweden - Eliminate dead keys
  486. variant*se*rus*Sweden - Russian phonetic
  487. variant*se*smi*Sweden - Northern Saami
  488. variant*se*rus_nodeadkeys*Sweden - Russian phonetic, eliminate dead keys
  489. variant*se*mac*Sweden - Macintosh
  490. layout*mn*Mongolia
  491. variant*mn**Mongolia
  492. layout*hu*Hungary
  493. variant*hu**Hungary
  494. variant*hu*101_qwerty_comma_dead*Hungary - 101/qwerty/comma/Dead keys
  495. variant*hu*102_qwerty_dot_dead*Hungary - 102/qwerty/dot/Dead keys
  496. variant*hu*101_qwertz_dot_dead*Hungary - 101/qwertz/dot/Dead keys
  497. variant*hu*101_qwertz_comma_dead*Hungary - 101/qwertz/comma/Dead keys
  498. variant*hu*101_qwertz_dot_nodead*Hungary - 101/qwertz/dot/Eliminate dead keys
  499. variant*hu*101_qwerty_comma_nodead*Hungary - 101/qwerty/comma/Eliminate dead keys
  500. variant*hu*101_qwerty_dot_dead*Hungary - 101/qwerty/dot/Dead keys
  501. variant*hu*101_qwertz_comma_nodead*Hungary - 101/qwertz/comma/Eliminate dead keys
  502. variant*hu*nodeadkeys*Hungary - Eliminate dead keys
  503. variant*hu*102_qwertz_dot_nodead*Hungary - 102/qwertz/dot/Eliminate dead keys
  504. variant*hu*102_qwerty_dot_nodead*Hungary - 102/qwerty/dot/Eliminate dead keys
  505. variant*hu*102_qwerty_comma_nodead*Hungary - 102/qwerty/comma/Eliminate dead keys
  506. variant*hu*102_qwerty_comma_dead*Hungary - 102/qwerty/comma/Dead keys
  507. variant*hu*standard*Hungary - Standard
  508. variant*hu*102_qwertz_comma_nodead*Hungary - 102/qwertz/comma/Eliminate dead keys
  509. variant*hu*101_qwerty_dot_nodead*Hungary - 101/qwerty/dot/Eliminate dead keys
  510. variant*hu*102_qwertz_dot_dead*Hungary - 102/qwertz/dot/Dead keys
  511. variant*hu*qwerty*Hungary - qwerty
  512. variant*hu*102_qwertz_comma_dead*Hungary - 102/qwertz/comma/Dead keys
  513. layout*np*Nepal
  514. variant*np**Nepal
  515. layout*pk*Pakistan
  516. variant*pk**Pakistan
  517. layout*lk*Sri Lanka
  518. variant*lk**Sri Lanka
  519. variant*lk*tam_TAB*Sri Lanka - Tamil TAB Typewriter
  520. variant*lk*tam_unicode*Sri Lanka - Tamil Unicode
  521. layout*kr*Korea, Republic of
  522. variant*kr**Korea, Republic of
  523. variant*kr*kr104*Korea, Republic of - 101/104 key Compatible
  524. layout*ee*Estonia
  525. variant*ee**Estonia
  526. variant*ee*dvorak*Estonia - Dvorak
  527. variant*ee*nodeadkeys*Estonia - Eliminate dead keys
  528. layout*za*South Africa
  529. variant*za**South Africa
  530. layout*mao*Maori
  531. variant*mao**Maori
  532. layout*am*Armenia
  533. variant*am**Armenia
  534. variant*am*eastern-alt*Armenia - Alternative Eastern
  535. variant*am*western*Armenia - Western
  536. variant*am*eastern*Armenia - Eastern
  537. variant*am*phonetic*Armenia - Phonetic
  538. layout*latam*Latin American
  539. variant*latam**Latin American
  540. variant*latam*sundeadkeys*Latin American - Sun dead keys
  541. variant*latam*nodeadkeys*Latin American - Eliminate dead keys
  542. layout*nec_vndr/jp*Japan (PC-98xx Series)
  543. variant*nec_vndr/jp**Japan (PC-98xx Series)
  544. layout*ie*Ireland
  545. variant*ie**Ireland
  546. variant*ie*ogam_is434*Ireland - Ogham IS434
  547. variant*ie*CloGaelach*Ireland - CloGaelach
  548. variant*ie*ogam*Ireland - Ogham
  549. variant*ie*UnicodeExpert*Ireland - UnicodeExpert
  550. layout*pt*Portugal
  551. variant*pt**Portugal
  552. variant*pt*mac_nodeadkeys*Portugal - Macintosh, eliminate dead keys
  553. variant*pt*sundeadkeys*Portugal - Sun dead keys
  554. variant*pt*nodeadkeys*Portugal - Eliminate dead keys
  555. variant*pt*mac_sundeadkeys*Portugal - Macintosh, Sun dead keys
  556. variant*pt*mac*Portugal - Macintosh
  557. layout*ng*Nigeria
  558. variant*ng**Nigeria
  559. variant*ng*igbo*Nigeria - Igbo
  560. variant*ng*yoruba*Nigeria - Yoruba
  561. variant*ng*hausa*Nigeria - Hausa
  562. layout*lv*Latvia
  563. variant*lv**Latvia
  564. variant*lv*tilde*Latvia - Tilde (~) variant
  565. variant*lv*fkey*Latvia - F-letter (F) variant
  566. variant*lv*apostrophe*Latvia - Apostrophe () variant
  567. layout*tr*Turkey
  568. variant*tr**Turkey
  569. variant*tr*sundeadkeys*Turkey - Sun dead keys
  570. variant*tr*ku*Turkey - Kurdish, Latin Q
  571. variant*tr*alt*Turkey - Alt-Q
  572. variant*tr*ku_alt*Turkey - Kurdish, Latin Alt-Q
  573. variant*tr*f*Turkey - (F)
  574. variant*tr*ku_f*Turkey - Kurdish, (F)
  575. layout*is*Iceland
  576. variant*is**Iceland
  577. variant*is*Sundeadkeys*Iceland - Sun dead keys
  578. variant*is*nodeadkeys*Iceland - Eliminate dead keys
  579. variant*is*mac*Iceland - Macintosh
  580. layout*gh*Ghana
  581. variant*gh**Ghana
  582. variant*gh*hausa*Ghana - Hausa
  583. variant*gh*ewe*Ghana - Ewe
  584. variant*gh*generic*Ghana - Multilingual
  585. variant*gh*ga*Ghana - Ga
  586. variant*gh*fula*Ghana - Fula
  587. variant*gh*akan*Ghana - Akan
  588. layout*fo*Faroe Islands
  589. variant*fo**Faroe Islands
  590. variant*fo*nodeadkeys*Faroe Islands - Eliminate dead keys
  591. layout*mv*Maldives
  592. variant*mv**Maldives
  593. layout*bd*Bangladesh
  594. variant*bd**Bangladesh
  595. variant*bd*probhat*Bangladesh - Probhat
  596. layout*nl*Netherlands
  597. variant*nl**Netherlands
  598. variant*nl*sundeadkeys*Netherlands - Sun dead keys
  599. variant*nl*mac*Netherlands - Macintosh
  600. layout*br*Brazil
  601. variant*br**Brazil
  602. variant*br*nodeadkeys*Brazil - Eliminate dead keys
  603. layout*jp*Japan
  604. variant*jp**Japan
  605. layout*sk*Slovakia
  606. variant*sk**Slovakia
  607. variant*sk*qwerty*Slovakia - qwerty
  608. variant*sk*bksl*Slovakia - Extended Backslash
  609. variant*sk*qwerty_bksl*Slovakia - qwerty, extended Backslash
  610. layout*cd*Congo, Democratic Republic of the
  611. variant*cd**Congo, Democratic Republic of the
  612. layout*tj*Tajikistan
  613. variant*tj**Tajikistan
  614. layout*hr*Croatia
  615. variant*hr**Croatia
  616. variant*hr*unicodeus*Croatia - US keyboard with Croatian digraphs
  617. variant*hr*unicode*Croatia - Use Croatian digraphs
  618. variant*hr*alternatequotes*Croatia - Use guillemets for quotes
  619. variant*hr*us*Croatia - US keyboard with Croatian letters
  620. layout*pl*Poland
  621. variant*pl**Poland
  622. variant*pl*csb*Poland - Kashubian
  623. variant*pl*dvorak_altquotes*Poland - Dvorak, Polish quotes on key "1/!"
  624. variant*pl*dvorak*Poland - Dvorak
  625. variant*pl*qwertz*Poland - qwertz
  626. variant*pl*dvorak_quotes*Poland - Dvorak, Polish quotes on quotemark key
  627. layout*si*Slovenia
  628. variant*si**Slovenia
  629. variant*si*us*Slovenia - US keyboard with Slovenian letters
  630. variant*si*unicodeus*Slovenia - US keyboard with Slovenian digraphs
  631. variant*si*alternatequotes*Slovenia - Use guillemets for quotes
  632. variant*si*unicode*Slovenia - Use Slovenian digraphs
  633. layout*il*Israel
  634. variant*il**Israel
  635. variant*il*lyx*Israel - lyx
  636. variant*il*phonetic*Israel - Phonetic
  637. layout*in*India
  638. variant*in**India
  639. variant*in*urd*India - Urdu
  640. variant*in*tam*India - Tamil
  641. variant*in*guru*India - Gurmukhi
  642. variant*in*guj*India - Gujarati
  643. variant*in*ben*India - Bengali
  644. variant*in*tam_TSCII*India - Tamil TSCII Typewriter
  645. variant*in*tel*India - Telugu
  646. variant*in*kan*India - Kannada
  647. variant*in*mal*India - Malayalam
  648. variant*in*ori*India - Oriya
  649. variant*in*tam_TAB*India - Tamil TAB Typewriter
  650. variant*in*tam_unicode*India - Tamil Unicode
  651. variant*in*ben_probhat*India - Bengali Probhat
  652. layout*mt*Malta
  653. variant*mt**Malta
  654. variant*mt*us*Malta - Maltese keyboard with US layout
  655. layout*es*Spain
  656. variant*es**Spain
  657. variant*es*dvorak*Spain - Dvorak
  658. variant*es*sundeadkeys*Spain - Sun dead keys
  659. variant*es*nodeadkeys*Spain - Eliminate dead keys
  660. variant*es*cat*Spain - Catalan variant with middle-dot L
  661. variant*es*mac*Spain - Macintosh
  662. layout*mk*Macedonia
  663. variant*mk**Macedonia
  664. variant*mk*nodeadkeys*Macedonia - Eliminate dead keys
  665. layout*cs*Serbia and Montenegro
  666. variant*cs**Serbia and Montenegro
  667. variant*cs*latinyz*Serbia and Montenegro - Latin qwerty
  668. variant*cs*latin*Serbia and Montenegro - Latin
  669. variant*cs*alternatequotes*Serbia and Montenegro - With guillemets
  670. variant*cs*yz*Serbia and Montenegro - Z and ZHE swapped
  671. variant*cs*latinunicodeyz*Serbia and Montenegro - Latin Unicode qwerty
  672. variant*cs*latinalternatequotes*Serbia and Montenegro - Latin with guillemets
  673. variant*cs*latinunicode*Serbia and Montenegro - Latin Unicode
  674. layout*gb*United Kingdom
  675. variant*gb**United Kingdom
  676. variant*gb*dvorak*United Kingdom - Dvorak
  677. variant*gb*intl*United Kingdom - International (with dead keys)
  678. variant*gb*mac*United Kingdom - Macintosh
  679. layout*ch*Switzerland
  680. variant*ch**Switzerland
  681. variant*ch*fr_sundeadkeys*Switzerland - French, Sun dead keys
  682. variant*ch*fr_mac*Switzerland - French (Macintosh)
  683. variant*ch*fr*Switzerland - French
  684. variant*ch*fr_nodeadkeys*Switzerland - French, eliminate dead keys
  685. variant*ch*de_sundeadkeys*Switzerland - German, Sun dead keys
  686. variant*ch*de_nodeadkeys*Switzerland - German, eliminate dead keys
  687. variant*ch*de_mac*Switzerland - German (Macintosh)
  688. layout*az*Azerbaijan
  689. variant*az**Azerbaijan
  690. variant*az*cyrillic*Azerbaijan - Cyrillic
  691. layout*bg*Bulgaria
  692. variant*bg**Bulgaria
  693. variant*bg*phonetic*Bulgaria - Phonetic
  694. layout*la*Laos
  695. variant*la**Laos
  696. layout*lt*Lithuania
  697. variant*lt**Lithuania
  698. variant*lt*us*Lithuania - US keyboard with Lithuanian letters
  699. variant*lt*std*Lithuania - Standard
  700. variant*lt*ibm*Lithuania - IBM (LST 1205-92)
  701. layout*no*Norway
  702. variant*no**Norway
  703. variant*no*mac_nodeadkeys*Norway - Macintosh, eliminate dead keys
  704. variant*no*dvorak*Norway - Dvorak
  705. variant*no*smi_nodeadkeys*Norway - Northern Saami, eliminate dead keys
  706. variant*no*nodeadkeys*Norway - Eliminate dead keys
  707. variant*no*smi*Norway - Northern Saami
  708. variant*no*mac*Norway - Macintosh
  709. layout*ca*Canada
  710. variant*ca**Canada
  711. variant*ca*multi*Canada - Multilingual, first part
  712. variant*ca*fr-dvorak*Canada - French Dvorak
  713. variant*ca*multix*Canada - Multilingual
  714. variant*ca*multi-2gr*Canada - Multilingual, second part
  715. variant*ca*ike*Canada - Inuktitut
  716. variant*ca*fr-legacy*Canada - French (legacy)
  717. layout*iq*Iraq
  718. variant*iq**Iraq
  719. variant*iq*ku*Iraq - Kurdish, Latin Q
  720. variant*iq*ku_ara*Iraq - Kurdish, Arabic-Latin
  721. variant*iq*ku_alt*Iraq - Kurdish, Latin Alt-Q
  722. variant*iq*ku_f*Iraq - Kurdish, (F)
  723. layout*th*Thailand
  724. variant*th**Thailand
  725. variant*th*pat*Thailand - Pattachote
  726. variant*th*tis*Thailand - TIS-820.2538
  727. layout*ara*Arabic
  728. variant*ara**Arabic
  729. variant*ara*qwerty*Arabic - qwerty
  730. variant*ara*azerty*Arabic - azerty
  731. variant*ara*azerty_digits*Arabic - azerty/digits
  732. variant*ara*buckwalter*Arabic - Buckwalter
  733. variant*ara*qwerty_digits*Arabic - qwerty/digits
  734. variant*ara*digits*Arabic - digits
  735. layout*epo*Esperanto
  736. variant*epo**Esperanto
  737. layout*ir*Iran
  738. variant*ir**Iran
  739. variant*ir*pro_keypad*Iran - Pro Keypad
  740. variant*ir*keypad*Iran - Keypad
  741. variant*ir*pro*Iran - Pro
  742. variant*ir*ku*Iran - Kurdish, Latin Q
  743. variant*ir*ku_ara*Iran - Kurdish, Arabic-Latin
  744. variant*ir*ku_alt*Iran - Kurdish, Latin Alt-Q
  745. variant*ir*ku_f*Iran - Kurdish, (F)
  746. layout*by*Belarus
  747. variant*by**Belarus
  748. variant*by*winkeys*Belarus - Winkeys
  749. variant*by*latin*Belarus - Latin
  750. layout*vn*Vietnam
  751. variant*vn**Vietnam
  752. layout*kg*Kyrgyzstan
  753. variant*kg**Kyrgyzstan
  754. layout*ua*Ukraine
  755. variant*ua**Ukraine
  756. variant*ua*winkeys*Ukraine - Winkeys
  757. variant*ua*rstu_ru*Ukraine - Standard RSTU on Russian layout
  758. variant*ua*typewriter*Ukraine - Typewriter
  759. variant*ua*rstu*Ukraine - Standard RSTU
  760. variant*ua*phonetic*Ukraine - Phonetic
  761. layout*ru*Russia
  762. variant*ru**Russia
  763. variant*ru*winkeys*Russia - Winkeys
  764. variant*ru*typewriter*Russia - Typewriter
  765. variant*ru*os_winkeys*Russia - Ossetian, Winkeys
  766. variant*ru*os*Russia - Ossetian
  767. variant*ru*tt*Russia - Tatar
  768. variant*ru*phonetic*Russia - Phonetic
  769. layout*fi*Finland
  770. variant*fi**Finland
  771. variant*fi*nodeadkeys*Finland - Eliminate dead keys
  772. variant*fi*smi*Finland - Northern Saami
  773. variant*fi*mac*Finland - Macintosh
  774. variant*fi*kotoistus*Finland - Kotoistus
  775. layout*ro*Romania
  776. variant*ro**Romania
  777. variant*ro*winkeys*Romania - Winkeys
  778. variant*ro*std*Romania - Standard
  779. layout*kz*Kazakhstan
  780. variant*kz**Kazakhstan
  781. variant*kz*kazrus*Kazakhstan - Kazakh with Russian
  782. variant*kz*ruskaz*Kazakhstan - Russian with Kazakh
  783. layout*gr*Greece
  784. variant*gr**Greece
  785. variant*gr*extended*Greece - Extended
  786. variant*gr*nodeadkeys*Greece - Eliminate dead keys
  787. variant*gr*polytonic*Greece - Polytonic
  788. layout*it*Italy
  789. variant*it**Italy
  790. variant*it*nodeadkeys*Italy - Eliminate dead keys
  791. variant*it*mac*Italy - Macintosh
  792. layout*de*Germany
  793. variant*de**Germany
  794. variant*de*dvorak*Germany - Dvorak
  795. variant*de*sundeadkeys*Germany - Sun dead keys
  796. variant*de*deadgraveacute*Germany - Dead grave acute
  797. variant*de*ro*Germany - Romanian keyboard with German letters
  798. variant*de*deadacute*Germany - Dead acute
  799. variant*de*ro_nodeadkeys*Germany - Romanian keyboard with German letters, eliminate dead keys
  800. variant*de*mac_nodeadkeys*Germany - Macintosh, eliminate dead keys
  801. variant*de*nodeadkeys*Germany - Eliminate dead keys
  802. variant*de*neo*Germany - Neostyle
  803. variant*de*mac*Germany - Macintosh
  804. layout*bt*Bhutan
  805. variant*bt**Bhutan
  806. layout*be*Belgium
  807. variant*be**Belgium
  808. variant*be*sundeadkeys*Belgium - Sun dead keys
  809. variant*be*nodeadkeys*Belgium - Eliminate dead keys
  810. variant*be*wang*Belgium - Wang model 724 azerty
  811. variant*be*iso-alternate*Belgium - ISO Alternate
  812. layout*uz*Uzbekistan
  813. variant*uz**Uzbekistan
  814. layout*cz*Czechia
  815. variant*cz**Czechia
  816. variant*cz*qwerty*Czechia - qwerty
  817. variant*cz*qwerty_bksl*Czechia - qwerty, extended Backslash
  818. variant*cz*bksl*Czechia - With <\|> key
  819. layout*mm*Myanmar
  820. variant*mm**Myanmar
  821. layout*fr*France
  822. variant*fr**France
  823. variant*fr*dvorak*France - Dvorak
  824. variant*fr*oss_latin9*France - Alternative, latin-9 only
  825. variant*fr*sundeadkeys*France - Sun dead keys
  826. variant*fr*oss_nodeadkeys*France - Alternative, eliminate dead keys
  827. variant*fr*latin9_nodeadkeys*France - (Legacy) Alternative, eliminate dead keys
  828. variant*fr*nodeadkeys*France - Eliminate dead keys
  829. variant*fr*latin9*France - (Legacy) Alternative
  830. variant*fr*latin9_sundeadkeys*France - (Legacy) Alternative, Sun dead keys
  831. variant*fr*oss*France - Alternative
  832. variant*fr*oss_sundeadkeys*France - Alternative, Sun dead keys
  833. variant*fr*mac*France - Macintosh
  834. layout*ba*Bosnia and Herzegovina
  835. variant*ba**Bosnia and Herzegovina
  836. variant*ba*unicode*Bosnia and Herzegovina - Use Bosnian digraphs
  837. variant*ba*us*Bosnia and Herzegovina - US keyboard with Bosnian letters
  838. variant*ba*unicodeus*Bosnia and Herzegovina - US keyboard with Bosnian digraphs
  839. variant*ba*alternatequotes*Bosnia and Herzegovina - Use guillemets for quotes
  840. layout*ge*Georgia
  841. variant*ge**Georgia
  842. variant*ge*ru*Georgia - Russian
  843. layout*kh*Cambodia
  844. variant*kh**Cambodia
  845. layout*af*Afghanistan
  846. variant*af**Afghanistan
  847. variant*af*ps*Afghanistan - Pashto
  848. variant*af*uz*Afghanistan - Southern Uzbek
  849. layout*us*U.S. English
  850. variant*us**U.S. English
  851. variant*us*dvorak*U.S. English - Dvorak
  852. variant*us*alt-intl*U.S. English - Alternative international (former us_intl)
  853. variant*us*dvorak-classic*U.S. English - Classic Dvorak
  854. variant*us*intl*U.S. English - International (with dead keys)
  855. variant*us*dvorak-l*U.S. English - Left handed Dvorak
  856. variant*us*rus*U.S. English - Russian phonetic
  857. variant*us*dvorak-r*U.S. English - Right handed Dvorak
  858. variant*us*mac*U.S. English - Macintosh
  859. layout*dk*Denmark
  860. variant*dk**Denmark
  861. variant*dk*mac_nodeadkeys*Denmark - Macintosh, eliminate dead keys
  862. variant*dk*nodeadkeys*Denmark - Eliminate dead keys
  863. variant*dk*mac*Denmark - Macintosh
  864. layout*ad*Andorra
  865. variant*ad**Andorra
  866. layout*al*Albania
  867. variant*al**Albania
  868. '
  869. # kbdnames='model*logicdp*Logitech Cordless Desktop Pro
  870. # model*omnikey101*Northgate OmniKey 101
  871. # ...
  872. # layout*el*Greek
  873. # ...
  874. # variant*it*nodeadkeys*Eliminate dead keys'
  875.  
  876. ## CODESETS ##
  877.  
  878. codesets='Arabic*. Arabic
  879. Armenian*# Armenian
  880. CyrKoi*# Cyrillic - KOI8-R and KOI8-U
  881. CyrAsia*# Cyrillic - non-Slavic languages
  882. CyrSlav*# Cyrillic - Slavic languages (also Bosnian and Serbian Latin)
  883. Ethiopian*. Ethiopic
  884. Georgian*# Georgian
  885. Greek*# Greek
  886. Hebrew*# Hebrew
  887. Lao*# Lao
  888. Lat15*# Latin1 and Latin5 - western Europe and Turkic languages
  889. Lat2*# Latin2 - central Europe and Romanian
  890. Lat38*# Latin3 and Latin8 - Chichewa; Esperanto; Irish; Maltese and Welsh
  891. Lat7*# Latin7 - Lithuanian; Latvian; Maori and Marshallese
  892. Vietnamese*. Latin - Vietnamese
  893. Thai*# Thai
  894. Uni1*. Combined - Latin; Slavic Cyrillic; Hebrew; basic Arabic
  895. Uni2*. Combined - Latin; Slavic Cyrillic; Greek
  896. Uni3*. Combined - Latin; Slavic and non-Slavic Cyrillic'
  897.  
  898. db_capb backup
  899. CAPB="$RET"
  900. detect_keyboard=false
  901. case $CAPB in
  902.     *plugin-detect-keyboard*)
  903.     detect_keyboard=:
  904.     ;;
  905. esac
  906.  
  907. # Set default value for a question only if it is not seen by the user
  908. db_default () {
  909.     if \
  910.     [ -f $CONFIGFILE ] \
  911.     || { db_fget $1 seen && [ "$RET" = false ]; }
  912.     then
  913.     db_set $1 "$2"
  914.     fi
  915. }
  916.  
  917. # A high level function to ask questions about the keyboard model,
  918. # layout and variant
  919. ask_debconf () {
  920.     local template priority prefix default_code default_description choices
  921.  
  922.     template=$1     # The template to ask
  923.     priority=$2     # The priority for the question
  924.     prefix=$3       # The prefix for $kbdnames
  925.     default_code=$4 # The default choice (optional)
  926.     choices=`echo "$kbdnames" | grep "^$prefix\*" | 
  927.         sed -e "s/^$prefix\*[^\*]*\*//" -e 's/,/\\\\,/g' -e 's/$/,/' | sort `
  928.     choices=`echo $choices | sed 's/, *$//'`
  929.  
  930.     db_subst $template CHOICES "$choices"
  931.     default_description=`echo "$kbdnames" |  
  932.         grep "^$prefix\*${default_code}\*" |
  933.         sed -e "s/^$prefix\*${default_code}\*//"`
  934.     if [ -z "$default_description" ]; then
  935.     # Vor XkbVariant the empty string is usualy a sensible default
  936.     default_description=`echo "$kbdnames" |  
  937.             grep "^$prefix\*\*" |
  938.             sed -e "s/^$prefix\*\*//"`
  939.     fi
  940.     if [ -n "$default_description" ]; then
  941.     db_default $template "$default_description"
  942.     fi
  943.  
  944.     db_input $priority $template || true
  945.     db_go || return 255
  946.     db_get $template
  947.     RET=`echo "$kbdnames" | grep "^$prefix\*[^\*]*\*" |
  948.              sed 's/  */ /g' |
  949.              grep "\*$RET\$" |
  950.              sed -e "s/^$prefix\*\([^\*]*\)\*.*/\1/" `
  951.     return 0
  952. }
  953.  
  954. # The guess arch code is taken from "console-data.conf"
  955. # (translated from Perl to shell)
  956.  
  957. # SUBARCH    KEYMAP SET    DETECTION
  958. # m68k/atari    atari        "Model: Atari"
  959. # m68k/amiga    amiga        "Model: Amiga"
  960. # m68k/mac    mac        "Model: Macintosh"
  961. # m68k/mvme    pc        "Model: Motorola"
  962. # m68k/bvme    pc        "Model: BVME[46]000"
  963. # m68k/{sun,apollo,next,q40,hp300} Not supported by Debian
  964.  
  965. # ppc/apus    amiga        "machine: Amiga"
  966. # ppc/chrp    pc,mac        "machine: CHRP"
  967. # ppc/pmac    mac        "machine: PowerMac|[Pp]ower[Bb]ook*|Power|iMac*|PowerMac1*"
  968. # ppc/prep    pc        "machine: PReP"
  969. # ppc/{bbox,mbx,ppc64,82xx,8xx} Not yet supported by Debian
  970.  
  971. # arm/*        pc        (refered to as 'arm' only)
  972.  
  973. guess_arch () {
  974.     local arch subarch line
  975.  
  976.     if which archdetect >/dev/null; then
  977.     archdetect
  978.     return 0
  979.     fi
  980.  
  981.     arch=`dpkg --print-installation-architecture`
  982.     
  983.     if [ "$arch" = 'powerpc' -o "$arch" = 'm68k' ]; then
  984.     if [ "$arch" = powerpc ]; then
  985.         line=`sed -n 's/^machine.*: *//p' /proc/cpuinfo`
  986.         if [ "$line" = '' ]; then
  987.         echo unknown
  988.         return 0
  989.         fi
  990.         subarch=`echo $line|tr A-Z a-z`
  991.     elif [ "$arch" = m68k ]; then
  992.         line=`sed -n 's/^Model.*: *//p' /proc/hardware`
  993.         if [ "$line" = '' ]; then
  994.         echo unknown
  995.         return 0
  996.         fi
  997.         subarch=`echo $line|tr A-Z a-z`
  998.     fi
  999.     case "$subarch" in
  1000.         *amiga*)
  1001.         subarch=amiga
  1002.         ;;
  1003.         *chrp*)
  1004.         subarch=chrp
  1005.         ;;
  1006.         *prep*)
  1007.         subarch=prep
  1008.         ;;
  1009.         *macintosh*|*powermac*|*powerbook*|*power*|*imac*|*powermac1*)
  1010.         subarch=mac
  1011.         ;;
  1012.         *atari*)
  1013.         subarch=atari
  1014.         ;;
  1015.         *motorola*)
  1016.         subarch=mvme
  1017.         ;;
  1018.         *bvme*)
  1019.         subarch=bvme
  1020.         ;;
  1021.         *)
  1022.         subarch=`echo $subarch|sed  's/^\s*//'`
  1023.         ;;
  1024.     esac
  1025.     arch="$arch/$subarch"
  1026.     fi
  1027.     echo $arch
  1028.     return 0
  1029. }
  1030.  
  1031. available_fontfaces () {
  1032.     echo "$fontsets" | sort | \
  1033.     grep "^$codeset-" | \
  1034.     sed -e "s/^$codeset-//" \
  1035.         -e 's/[0-9][0-9]*x[0-9][0-9]*$//' \
  1036.         -e 's/[0-9]*$//' | \
  1037.     uniq
  1038. }
  1039.  
  1040. available_fontsizes () {
  1041.     echo "$fontsets" | sort | \
  1042.     grep "^$codeset-$fontface[0-9]" | \
  1043.     sed -e "s/^$codeset-$fontface//" | \
  1044.     uniq
  1045. }
  1046.  
  1047. decode_codeset () {
  1048.     echo "$codesets" | \
  1049.     grep -F "$**" | \
  1050.     sed 's/.*[*]//'
  1051. }
  1052.  
  1053. encode_codeset () {
  1054.     echo "$codesets" | \
  1055.     grep -F "*$*" | \
  1056.     sed 's/[*].*//'
  1057. }
  1058.  
  1059. if which locale >/dev/null; then
  1060.     eval `locale`
  1061. fi
  1062.  
  1063. if [ "$LC_CTYPE"  -a "$LC_CTYPE" != C ]; then
  1064.     locale=$LC_CTYPE
  1065. elif db_get debian-installer/locale && [ "$RET" ]; then
  1066.     locale="$RET"
  1067. else
  1068.     locale=C
  1069. fi
  1070.  
  1071. case "$locale" in
  1072.     *KOI8*|*koi8*)
  1073.     default_codeset=CyrKoi
  1074.     codeset_priority=low
  1075.     ;;
  1076.     aa_*)
  1077.     default_codeset=Lat15
  1078.     codeset_priority=low
  1079.     ;;
  1080.     af_*)
  1081.     default_codeset=Lat15
  1082.     codeset_priority=low
  1083.     ;;
  1084.     am_*)
  1085.     default_codeset=Ethiopic
  1086.     codeset_priority=low
  1087.     ;;
  1088.     an_*)
  1089.     default_codeset=Lat15
  1090.     codeset_priority=low
  1091.     ;;
  1092.     ar_*)
  1093.     default_codeset=Arabic
  1094.     codeset_priority=low
  1095.     ;;
  1096.     az_*)
  1097.     default_codeset=Uni3
  1098.     codeset_priority=low
  1099.     ;;
  1100.     be_*)
  1101.     default_codeset=CyrSlav
  1102.     codeset_priority=low
  1103.     ;;
  1104.     bg_*)
  1105.     default_codeset=CyrSlav
  1106.     codeset_priority=low
  1107.     ;;
  1108.     bn_*)
  1109.     default_codeset=unsupported
  1110.     codeset_priority=low
  1111.     ;;
  1112.     br_*)
  1113.     default_codeset=Lat15
  1114.     codeset_priority=low
  1115.     ;;
  1116.     bs_*)
  1117.     default_codeset=Uni3
  1118.     codeset_priority=low
  1119.     ;;
  1120.     byn_*)
  1121.     default_codeset=Ethiopian
  1122.     codeset_priority=low
  1123.     ;;
  1124.     ca_*)
  1125.     default_codeset=Lat15
  1126.     codeset_priority=low
  1127.     ;;
  1128.     cs_*)
  1129.     default_codeset=Lat2
  1130.     codeset_priority=low
  1131.     ;;
  1132.     cy_*)
  1133.     default_codeset=Lat38
  1134.     codeset_priority=low
  1135.     ;;
  1136.     da_*)
  1137.     default_codeset=Lat15
  1138.     codeset_priority=low
  1139.     ;;
  1140.     de_*)
  1141.     default_codeset=Lat15
  1142.     codeset_priority=low
  1143.     ;;
  1144.     el_*)
  1145.     default_codeset=Greek
  1146.     codeset_priority=low
  1147.     ;;
  1148.     en_*)
  1149.     default_codeset=Lat15
  1150.     codeset_priority=low
  1151.     ;;
  1152.     eo|eo_*)
  1153.     default_codeset=Lat38
  1154.     codeset_priority=low
  1155.     ;;
  1156.     es_*)
  1157.     default_codeset=Lat15
  1158.     codeset_priority=low
  1159.     ;;
  1160.     et_*)
  1161.     default_codeset=Lat15
  1162.     codeset_priority=low
  1163.     ;;
  1164.     eu_*)
  1165.     default_codeset=Lat15
  1166.     codeset_priority=low
  1167.     ;;
  1168.     fa_*)
  1169.     default_codeset=Arabic
  1170.     codeset_priority=low
  1171.     ;;
  1172.     fi_*)
  1173.     default_codeset=Lat15
  1174.     codeset_priority=low
  1175.     ;;
  1176.     fo_*)
  1177.     default_codeset=Lat15
  1178.     codeset_priority=low
  1179.     ;;
  1180.     fr_*)
  1181.     default_codeset=Lat15
  1182.     codeset_priority=low
  1183.     ;;
  1184.     ga_*)
  1185.     default_codeset=Lat38
  1186.     codeset_priority=low
  1187.     ;;
  1188.     gd_*)
  1189.     default_codeset=Lat15
  1190.     codeset_priority=low
  1191.     ;;
  1192.     gez_*)
  1193.     default_codeset=Ethiopian
  1194.     codeset_priority=low
  1195.     ;;
  1196.     gl_*)
  1197.     default_codeset=Lat15
  1198.     codeset_priority=low
  1199.     ;;
  1200.     gu_*)
  1201.     default_codeset=unsupported
  1202.     codeset_priority=low
  1203.     ;;
  1204.     gv_*)
  1205.     default_codeset=Lat15
  1206.     codeset_priority=low
  1207.     ;;
  1208.     he_*)
  1209.     default_codeset=Hebrew
  1210.     codeset_priority=low
  1211.     ;;
  1212.     hi_*)
  1213.     default_codeset=unsupported
  1214.     codeset_priority=low
  1215.     ;;
  1216.     hr_*)
  1217.     default_codeset=Lat2
  1218.     codeset_priority=low
  1219.     ;;
  1220.     hu_*)
  1221.     default_codeset=Lat2
  1222.     codeset_priority=low
  1223.     ;;
  1224.     hy_*)
  1225.     default_codeset=Armenian
  1226.     codeset_priority=low
  1227.     ;;
  1228.     id_*)
  1229.     default_codeset=Lat15
  1230.     codeset_priority=low
  1231.     ;;
  1232.     is_*)
  1233.     default_codeset=Lat15
  1234.     codeset_priority=low
  1235.     ;;
  1236.     it_*)
  1237.     default_codeset=Lat15
  1238.     codeset_priority=low
  1239.     ;;
  1240.     iw_*)
  1241.     default_codeset=Hebrew
  1242.     codeset_priority=low
  1243.     ;;
  1244.     ja_*)
  1245.     default_codeset=unsupported
  1246.     codeset_priority=low
  1247.     ;;
  1248.     ka_*)
  1249.     default_codeset=Georgian
  1250.     codeset_priority=low
  1251.     ;;
  1252.     kl_*)
  1253.     default_codeset=Lat15
  1254.     codeset_priority=low
  1255.     ;;
  1256.     kn_*)
  1257.     default_codeset=unsupported
  1258.     codeset_priority=low
  1259.     ;;
  1260.     ko_*)
  1261.     default_codeset=unsupported
  1262.     codeset_priority=low
  1263.     ;;
  1264.     kw_*)
  1265.     default_codeset=Lat15
  1266.     codeset_priority=low
  1267.     ;;
  1268.     lg_*)
  1269.     default_codeset=Lat15 # TODO: This must be ISO-8859-10 (Latin6)
  1270.     codeset_priority=low
  1271.     ;;
  1272.     lo_*)
  1273.     default_codeset=Lao
  1274.     codeset_priority=low
  1275.     ;;
  1276.     lt_*)
  1277.     default_codeset=Lat7
  1278.     codeset_priority=low
  1279.     ;;
  1280.     lv_*)
  1281.     default_codeset=Lat7
  1282.     codeset_priority=low
  1283.     ;;
  1284.     mi_*)
  1285.     default_codeset=Lat7
  1286.     codeset_priority=low
  1287.     ;;
  1288.     mk_*)
  1289.     default_codeset=CyrSlav
  1290.     codeset_priority=low
  1291.     ;;
  1292.     ml_*)
  1293.     default_codeset=unsupported
  1294.     codeset_priority=low
  1295.     ;;
  1296.     mn_*)
  1297.     default_codeset=CyrAsia
  1298.     codeset_priority=low
  1299.     ;;
  1300.     mr_*)
  1301.     default_codeset=unsupported
  1302.     codeset_priority=low
  1303.     ;;
  1304.     ms_*)
  1305.     default_codeset=Lat15 # TODO: Is this correct? (Malay language)
  1306.     codeset_priority=low
  1307.     ;;
  1308.     mt_*)
  1309.     default_codeset=Lat38
  1310.     codeset_priority=low
  1311.     ;;
  1312.     nb_*)
  1313.     default_codeset=Lat15
  1314.     codeset_priority=low
  1315.     ;;
  1316.     ne_*)
  1317.     default_codeset=unsupported
  1318.     codeset_priority=low
  1319.     ;;
  1320.     nl_*)
  1321.     default_codeset=Lat15
  1322.     codeset_priority=low
  1323.     ;;
  1324.     nn_*)
  1325.     default_codeset=Lat15
  1326.     codeset_priority=low
  1327.     ;;
  1328.     oc_*)
  1329.     default_codeset=Lat15
  1330.     codeset_priority=low
  1331.     ;;
  1332.     om_*)
  1333.     default_codeset=Lat15
  1334.     codeset_priority=low
  1335.     ;;
  1336.     pa_*)
  1337.     default_codeset=unsupported
  1338.     codeset_priority=low
  1339.     ;;
  1340.     pl_*)
  1341.     default_codeset=Lat2
  1342.     codeset_priority=low
  1343.     ;;
  1344.     pt_*)
  1345.     default_codeset=Lat15
  1346.     codeset_priority=low
  1347.     ;;
  1348.     ro_*)
  1349.     default_codeset=Lat2
  1350.     codeset_priority=low
  1351.     ;;
  1352.     ru_*)
  1353.     default_codeset=CyrSlav
  1354.     codeset_priority=low
  1355.     ;;
  1356.     se_*)
  1357.     default_codeset=Uni1
  1358.     codeset_priority=low
  1359.     ;;
  1360.     sid_*)
  1361.     default_codeset=Lat15 # TODO: Is this correct? (Sidama language)
  1362.     codeset_priority=low
  1363.     ;;
  1364.     sk_*)
  1365.     default_codeset=Lat2
  1366.     codeset_priority=low
  1367.     ;;
  1368.     sl_*)
  1369.     default_codeset=Lat2
  1370.     codeset_priority=low
  1371.     ;;
  1372.     so_*)
  1373.     default_codeset=Lat15
  1374.     codeset_priority=low
  1375.     ;;
  1376.     sq_*)
  1377.     default_codeset=Lat15
  1378.     codeset_priority=low
  1379.     ;;
  1380.     sr_*)
  1381.     default_codeset=CyrSlav
  1382.     codeset_priority=low
  1383.     ;;
  1384.     st_*)
  1385.     default_codeset=Lat15 # TODO: Is this correct? (Sotho language)
  1386.     codeset_priority=low
  1387.     ;;
  1388.     sv_*)
  1389.     default_codeset=Lat15
  1390.     codeset_priority=low
  1391.     ;;
  1392.     ta_*)
  1393.     default_codeset=unsupported
  1394.     codeset_priority=low
  1395.     ;;
  1396.     te_*)
  1397.     default_codeset=unsupported
  1398.     codeset_priority=low
  1399.     ;;
  1400.     tg_*)
  1401.     default_codeset=CyrAsia
  1402.     codeset_priority=low
  1403.     ;;
  1404.     th_*)
  1405.     default_codeset=Thai
  1406.     codeset_priority=low
  1407.     ;;
  1408.     ti_*)
  1409.     default_codeset=Ethiopian
  1410.     codeset_priority=low
  1411.     ;;
  1412.     tig_*)
  1413.     default_codeset=Ethiopian
  1414.     codeset_priority=low
  1415.     ;;
  1416.     tl_*)
  1417.     default_codeset=Lat15
  1418.     codeset_priority=low
  1419.     ;;
  1420.     tr_*)
  1421.     default_codeset=Lat15
  1422.     codeset_priority=low
  1423.     ;;
  1424.     tt_*)
  1425.     default_codeset=Lat15 # TODO: Is this correct? (Tatar language)
  1426.     codeset_priority=low
  1427.     ;;
  1428.     uk_*)
  1429.     default_codeset=CyrSlav
  1430.     codeset_priority=low
  1431.     ;;
  1432.     ur_*)
  1433.     default_codeset=Arabic
  1434.     codeset_priority=low
  1435.     ;;
  1436.     uz_*)
  1437.     default_codeset=Lat15 # TODO: Is this correct? (Uzbek language)
  1438.     codeset_priority=low
  1439.     ;;
  1440.     uz_*\@cyrillic)
  1441.     default_codeset=CyrAsia
  1442.     codeset_priority=low
  1443.     ;;
  1444.     vi_*)
  1445.     default_codeset=Vietnamese
  1446.     codeset_priority=low
  1447.     ;;
  1448.     wa_*)
  1449.     default_codeset=Lat15
  1450.     codeset_priority=low
  1451.     ;;
  1452.     xh_*)
  1453.     default_codeset=Lat15
  1454.     codeset_priority=low
  1455.     ;;
  1456.     yi_*)
  1457.     default_codeset=Hebrew
  1458.     codeset_priority=low
  1459.     ;;
  1460.     zh_*)
  1461.     default_codeset=unsupported
  1462.     codeset_priority=low
  1463.     ;;
  1464.     zu_*)
  1465.     default_codeset=Lat15
  1466.     codeset_priority=low
  1467.     ;;
  1468.     *)
  1469.     default_codeset=Uni1
  1470.     codeset_priority=high
  1471.     ;;
  1472. esac
  1473.  
  1474. default_codeset="`decode_codeset $default_codeset`"
  1475.  
  1476. default_layout=''
  1477. default_variant=''
  1478. layout_priority=critical
  1479. case "$locale" in
  1480.     # Keyboards for countries
  1481.     *_AL*)
  1482.     default_layout=al  # Albania
  1483.     ;;
  1484.     *_AZ*)
  1485.     default_layout=az  # Azerbaijan
  1486.     ;;
  1487.     *_BD*)
  1488.     default_layout=bd  # Bangladesh
  1489.     ;;
  1490.     *_BE*)
  1491.     default_layout=be  # Belgium
  1492.     ;;
  1493.     *_BG*)
  1494.     default_layout=bg  # Bulgaria
  1495.     layout_priority=critical
  1496.     ;;
  1497.     *_BR*)
  1498.     default_layout=br  # Brazil
  1499.     ;;
  1500.     *_BY*)
  1501.     default_layout=by  # Belarus
  1502.     ;;
  1503.     fr_CA*)
  1504.     default_layout=ca  # Canada
  1505.     ;;
  1506.     *_CA*)
  1507.     default_layout=us  # U.S. English
  1508.     ;;
  1509.     fr_CH*)
  1510.     default_layout=ch  # Switzerland
  1511.     default_variant=fr # French
  1512.     ;;
  1513.     *_CH*)
  1514.     default_layout=ch  # Switzerland
  1515.     layout_priority=critical
  1516.     ;;
  1517.     *_CZ*)
  1518.     default_layout=cz  # Czechia
  1519.     layout_priority=critical
  1520.     ;;
  1521.     *_DK*)
  1522.     default_layout=dk  # Denmark
  1523.     ;;
  1524.     *_EE*)
  1525.     default_layout=ee  # Estonia
  1526.     ;;
  1527.     *_ES*)
  1528.     default_layout=es  # Spain
  1529.     ;;
  1530.     se_FI*)
  1531.     default_layout=fi  # Finland
  1532.     default_variant=smi # Northern Saami
  1533.     ;;
  1534.     *_FI*)
  1535.     default_layout=fi  # Finland
  1536.     default_variant=fi # Finland
  1537.     ;;
  1538.     *_GB*)
  1539.     default_layout=gb  # United Kingdom
  1540.     ;;
  1541.     *_HU*)
  1542.     default_layout=hu  # Hungary
  1543.     ;;
  1544.     *_IE*)
  1545.     default_layout=ie  # Ireland
  1546.     ;;
  1547.     *_IL*)
  1548.     default_layout=il  # Israel
  1549.     layout_priority=critical
  1550.     ;;
  1551.     *_IR*)
  1552.     default_layout=ir  # Iran
  1553.     ;;
  1554.     *_IS*)
  1555.     default_layout=is  # Iceland
  1556.     ;;
  1557.     *_IT*)
  1558.     default_layout=it  # Italy
  1559.     ;;
  1560.     *_JP*)
  1561.     default_layout=jp  # Japan
  1562.     ;;
  1563.     *_LT*)
  1564.     default_layout=lt  # Lithuania
  1565.     layout_priority=critical
  1566.     ;;
  1567.     *_LV*)
  1568.     default_layout=lv  # Latvia
  1569.     ;;
  1570.     *_MK*)
  1571.     default_layout=mk  # Macedonia
  1572.     ;;
  1573.     *_NL*)
  1574.     default_layout=nl  # Netherlands
  1575.     ;;
  1576.     *_MN*)
  1577.     default_layout=mn  # Mongolia
  1578.     ;;
  1579.     *_MT*)
  1580.     default_layout=mt  # Malta
  1581.     layout_priority=critical
  1582.     ;;
  1583.     se_NO*)
  1584.     default_layout=no  # Norway
  1585.     default_variant=smi # Northern Saami
  1586.     ;;
  1587.     *_NO*)
  1588.     default_layout=no  # Norway (se_NO is not in this case)
  1589.     ;;
  1590.     *_PL*)
  1591.     default_layout=pl  # Poland
  1592.     ;;
  1593.     *_PT*)
  1594.     default_layout=pt  # Portugal
  1595.     ;;
  1596.     *_RO*)
  1597.     default_layout=ro  # Romania
  1598.     ;;
  1599.     *_RU*)
  1600.     default_layout=ru  # Russia
  1601.     layout_priority=critical
  1602.     ;;
  1603.     se_SE*)
  1604.     default_layout=se  # Sweden
  1605.     default_variant=smi # Northern Saami
  1606.     ;;
  1607.     *_SK*)
  1608.     default_layout=sk  # Slovakia
  1609.     ;;
  1610.     *_SI*)
  1611.     default_layout=si  # Slovenia
  1612.     ;;
  1613.     *_TJ*)
  1614.     default_layout=tj  # Tajikistan
  1615.     ;;
  1616.     *_TH*)
  1617.     default_layout=th  # Thailand
  1618.     layout_priority=critical
  1619.     ;;
  1620.     *_TR*)
  1621.     default_layout=tr  # Turkish
  1622.     layout_priority=critical
  1623.     ;;
  1624.     *_UA*)
  1625.     default_layout=ua  # Ukraine
  1626.     ;;
  1627.     en_US*)
  1628.     default_layout=us  # U.S. English
  1629.     ;;
  1630.     *_VN*)
  1631.     default_layout=vn  # Vietnam
  1632.     ;;
  1633.     # Keyboards for specific languages and international keyboards:
  1634.     # TODO: Is the following list correct?
  1635.     *_AR*|*_BO*|*_CL*|*_CO*|*_CR*|*_DO*|*_EC*|*_GT*|*_HN*|*_MX*|*_NI*|*_PA*|*_PE*|es_PR*|*_PY*|*_SV*|es_US*|*_UY*|*_VE*)
  1636.     default_layout=latam # Latin American
  1637.     ;;
  1638.     ar_*)
  1639.     default_layout=ara # Arabic
  1640.     ;;
  1641.     bs_*)
  1642.     default_layout=ba  # Bosnia and Herzegovina
  1643.     ;;
  1644.     de_*)
  1645.     default_layout=de  # Germany
  1646.     ;;
  1647.     el_*)
  1648.     default_layout=gr  # Greece
  1649.     ;;
  1650.     fr_*)
  1651.     default_layout=fr  # France
  1652.     default_variant=oss # Alternative
  1653.     layout_priority=critical
  1654.     ;;
  1655.     gu_*)
  1656.     default_layout=in  # India
  1657.     default_variant=guj # Gujarati
  1658.     ;;
  1659.     hi_*)
  1660.     default_layout=in  # India
  1661.     default_variant=deva # Devangari
  1662.     ;;
  1663.     hr_*)
  1664.     default_layout=hr  # Croatia
  1665.     ;;
  1666.     hy_*)
  1667.     default_layout=am  # Armenia
  1668.     ;;
  1669.     ka_*)
  1670.     default_layout=ge  # Georgia
  1671.     layout_priority=critical
  1672.     ;;
  1673.     kn_*)
  1674.     default_layout=in  # India
  1675.     default_variant=kan # Kannada
  1676.     ;;
  1677.     lo_*)
  1678.     default_layout=la  # Laos
  1679.     ;;
  1680.     ml_*)
  1681.     default_layout=in  # India
  1682.     default_variant=mal # Malayalam
  1683.     ;;
  1684.     pa_*)
  1685.     default_layout=in  # India
  1686.     default_variant=guru # Gurmukhi
  1687.     ;;
  1688.     sr_*)
  1689.     default_layout=cs  # Serbia and Montenegro
  1690.     layout_priority=critical
  1691.     ;;
  1692.     sv_*)
  1693.     default_layout=se  # Sweden
  1694.     default_variant=basic
  1695.     ;;
  1696.     ta_*)
  1697.     default_layout=in  # India
  1698.     default_variant=tam # Tamil
  1699.     ;;
  1700.     te_*)
  1701.     default_layout=in  # India
  1702.     default_variant=tel # Telugu
  1703.     ;;
  1704.     # Fallback
  1705.     *)
  1706.     default_layout=us
  1707.     ;;
  1708. esac
  1709.  
  1710. if which locale >/dev/null; then
  1711.     default_charmap=`locale charmap`
  1712. elif [ -d /lib/debian-installer ]; then
  1713.     default_charmap=UTF-8
  1714. else
  1715.     default_charmap=unknown
  1716. fi
  1717. if [ "$locale" = C ]; then
  1718.     default_charmap=UTF-8
  1719.     charmap_priority=high
  1720. elif echo "$charmaps" | grep "$default_charmap" >/dev/null; then
  1721.     charmap_priority=low
  1722. else
  1723.     default_charmap=UTF-8
  1724.     charmap_priority=high
  1725. fi
  1726.  
  1727. arch=`guess_arch`
  1728.  
  1729. case "$arch" in
  1730.     alpha*)
  1731.     default_model=pc105
  1732.     model_priority=medium
  1733.     ;;
  1734.     amd64*)
  1735.     default_model=pc105
  1736.     model_priority=medium
  1737.     ;;
  1738.     arm*)
  1739.     default_model=pc105
  1740.     model_priority=medium
  1741.     ;;
  1742.     i386*)
  1743.     default_model=pc105
  1744.     model_priority=medium
  1745.     ;;
  1746.     ia64*)
  1747.     default_model=pc105
  1748.     model_priority=medium
  1749.     ;;
  1750.     m68k/amiga)
  1751.     default_model=amiga
  1752.     model_priority=medium
  1753.     ;;
  1754.     m68k/atari)
  1755.     default_model=ataritt
  1756.     model_priority=medium
  1757.     ;;
  1758.     m68k/mac)
  1759.     default_model=macintosh_old
  1760.     model_priority=medium
  1761.     ;;
  1762.     m68k/sun*)
  1763.     default_model=sun4 # also sun5, pc105
  1764.     model_priority=critical
  1765.     ;;
  1766.     m68k/*vme*)
  1767.     default_model=pc105
  1768.     model_priority=medium
  1769.     ;;
  1770.     mips*)
  1771.     default_model=pc105
  1772.     model_priority=medium
  1773.     ;;
  1774.     powerpc/amiga)
  1775.     default_model=amiga
  1776.     model_priority=medium
  1777.     ;;
  1778.     powerpc/apus)
  1779.     default_model=amiga
  1780.     model_priority=medium
  1781.     ;;
  1782.     powerpc/chrp*)
  1783.     default_model=pc105 # also macintosh_old and maybe amiga
  1784.     model_priority=critical
  1785.     ;;
  1786.     powerpc/mac)
  1787.     default_model=pc105
  1788.     model_priority=medium
  1789.     ;;
  1790.     powerpc/powermac*)
  1791.     default_model=pc105
  1792.     model_priority=medium
  1793.     ;;
  1794.     powerpc/prep)
  1795.     default_model=pc105
  1796.     model_priority=medium
  1797.     ;;
  1798.     sparc*)
  1799.     default_model=sun4 # also sun5, pc105
  1800.     model_priority=critical
  1801.     ;;
  1802.     s390*)
  1803.     default_model=pc105
  1804.     model_priority=medium
  1805.     ;;
  1806.     *)
  1807.     default_model=pc105
  1808.     model_priority=critical
  1809.     ;;
  1810. esac    
  1811.  
  1812. #######################################################################
  1813.  
  1814. # Use the value of debian-installer/keymap to get better default
  1815. # layout.  Lower the priority of the Debconf question to medium.
  1816.  
  1817. # This is a desperation measure, but required for migration from
  1818. # pre-console-setup systems without X installed. We just have to copy
  1819. # the guesswork formerly done by xserver-xorg.config.
  1820.  
  1821. if db_get debian-installer/keymap && [ "$RET" ]; then
  1822.     di_keymap="${RET##mac-usb-}"
  1823.     di_keymap="${di_keymap%%-latin1}"
  1824.  
  1825.     XKBMODEL=''
  1826.     XKBLAYOUT=''
  1827.     XKBVARIANT=''
  1828.     case "$di_keymap" in
  1829.     be2) XKBLAYOUT="be";;
  1830.     bg) XKBLAYOUT="bg"; XKBVARIANT="bds";;
  1831.     br) XKBLAYOUT="us"; XKBVARIANT="intl"; XKBMODEL="pc104";;
  1832.     br-abnt2) XKBLAYOUT="br"; XKBVARIANT="abnt2"; XKBMODEL="abnt2";;
  1833.     by) XKBLAYOUT="by";;
  1834.     cf) XKBLAYOUT="ca"; XKBVARIANT="fr";;
  1835.     croat) XKBLAYOUT="hr";;
  1836.     cz-lat2) XKBLAYOUT="cz";;
  1837.     de-latin1-nodeadkeys) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  1838.     de) XKBLAYOUT="de";;
  1839.     dvorak) XKBLAYOUT="us"; XKBVARIANT="dvorak"; XKBMODEL="pc104";;
  1840.     dk) XKBLAYOUT="dk";;
  1841.     es) XKBLAYOUT="es";;
  1842.     et) XKBLAYOUT="ee";;
  1843.     'fi') XKBLAYOUT="fi";;
  1844.     fr-latin9) XKBLAYOUT="fr"; XKBVARIANT="latin9";;
  1845.     fr_CH) XKBLAYOUT="ch"; XKBVARIANT="fr";;
  1846.     fr) XKBLAYOUT="fr"; XKBVARIANT="oss";;
  1847.     hebrew) XKBLAYOUT="il";;
  1848.     hu) XKBLAYOUT="hu";;
  1849.     gb) XKBLAYOUT="gb";;
  1850.     is) XKBLAYOUT="is";;
  1851.     it) XKBLAYOUT="it";;
  1852.     jp106) XKBLAYOUT="jp"; XKBVARIANT="jp106"; XKBMODEL="jp106";;
  1853.     la) XKBLAYOUT="latam";;
  1854.     lt) XKBLAYOUT="lt";; 
  1855.     lv-latin4) XKBLAYOUT="lv";;
  1856.     mac-us-std) XKBLAYOUT="us";;
  1857.     mac-de2-ext) XKBLAYOUT="de"; XKBVARIANT="nodeadkeys";;
  1858.     mac-fr2-ext) XKBLAYOUT="fr";;
  1859.     mac-fr3) XKBLAYOUT="fr";;
  1860.     mac-es) XKBLAYOUT="es";;
  1861.     mk) XKBLAYOUT="mk";;
  1862.     nl) XKBLAYOUT="nl";;
  1863.     no) XKBLAYOUT="no";;
  1864.     pl) XKBLAYOUT="pl";;
  1865.     pt) XKBLAYOUT="pt";;
  1866.     ro) XKBLAYOUT="ro";;
  1867.     ru) XKBLAYOUT="ru";;
  1868.     se) XKBLAYOUT="se";;
  1869.     sg) XKBLAYOUT="ch"; XKBVARIANT="de";;
  1870.     sk-qwerty) XKBLAYOUT="sk"; XKBVARIANT="qwerty";;
  1871.     slovene) XKBLAYOUT="si";;
  1872.     sr-cy) XKBLAYOUT="cs";;
  1873.     trf|trfu) XKBLAYOUT="tr"; XKBVARIANT="f";;
  1874.     trq|trqu) XKBLAYOUT="tr";;
  1875.     ua) XKBLAYOUT="ua";;
  1876.     uk) XKBLAYOUT="gb";;
  1877.     us) XKBLAYOUT="us"; XKBMODEL="pc104";;
  1878.     esac
  1879.  
  1880.     # Currently the following two lines are meaningless but stay here
  1881.     # in case some wants to use the real XkbLayout and XkbVariant for
  1882.     # the non-Latin layouts
  1883.     XKBLAYOUT=${XKBLAYOUT#*,}
  1884.     XKBVARIANT=${XKBVARIANT#*,}
  1885.  
  1886.     case "$XKBLAYOUT" in
  1887.     '')
  1888.         layout_priority=critical
  1889.         ;;
  1890.     bg)
  1891.         # since there are two incompatible layouts and the console
  1892.         # provides only one of them
  1893.         default_layout="$XKBLAYOUT"
  1894.         default_variant="$XKBVARIANT"
  1895.         layout_priority=high
  1896.         ;;
  1897.     *)
  1898.         if [ "$XKBMODEL" ]; then
  1899.         default_model="$XKBMODEL"
  1900.         fi
  1901.         default_layout="$XKBLAYOUT"
  1902.         default_variant="$XKBVARIANT"
  1903.         layout_priority=medium
  1904.         ;;
  1905.     esac
  1906. fi
  1907.     
  1908. # Get defaults from debconf, to allow preseeding.
  1909. if db_get console-setup/modelcode && [ "$RET" ]; then
  1910.     default_model="$RET"
  1911. fi
  1912. if db_get console-setup/layoutcode && [ "$RET" ]; then
  1913.     default_layout="$RET"
  1914.     layout_priority=medium
  1915.     db_set console-setup/ask_detect false
  1916.     db_fset console-setup/ask_detect seen true
  1917. fi
  1918. if db_get console-setup/variantcode && [ "$RET" ]; then
  1919.     default_variant="$RET"
  1920. fi
  1921. if db_get console-setup/optionscode && [ "$RET" ]; then
  1922.     XKBOPTIONS="$RET"
  1923.     got_xkboptions=yes
  1924. fi
  1925. if db_get console-setup/fontsize && [ "$RET" ]; then
  1926.     db_set console-setup/fontsize-text "$RET"
  1927.     db_set console-setup/fontsize-fb "$RET"
  1928. fi
  1929.  
  1930. # Load the config file, if it exists.
  1931. if [ -e $CONFIGFILE ]; then
  1932.     . $CONFIGFILE || true
  1933.     
  1934.     got_full_config=yes
  1935.     got_xkboptions=yes
  1936.     model_priority=medium
  1937.     layout_priority=medium
  1938.     default_ttys="$ACTIVE_CONSOLES"
  1939.     default_charmap="$CHARMAP"
  1940.     default_fontface="$FONTFACE"
  1941.     default_fontsize="$FONTSIZE"
  1942.     default_model="$XKBMODEL"
  1943.  
  1944.     default_codeset="`decode_codeset $CODESET`"
  1945.  
  1946.     case "$XKBLAYOUT" in
  1947.     # TODO: make s.t. to not forget to update this list
  1948.     cs,cs|us,am|us,ara|us,ben|us,bd|us,bg|us,bt|us,by|us,deva|us,ge|us,gh|us,gr|us,guj|us,guru|us,il|us,in|us,ir|us,iku|jp,jp|us,jp|us,kan|us,kh|us,la|us,lao|us,lk|us,lt|us,mk|us,mm|us,mn|us,mv|us,mal|us,ori|us,pk|us,ru|us,scc|us,sy|us,syr|us,tel|us,th|us,tj|us,tam|us,ua|us,uz)
  1949.         default_layout=${XKBLAYOUT#*,}
  1950.         default_variant="${XKBVARIANT#*,}"
  1951.         unsupported_layout=no
  1952.         ;;        
  1953.     *,*)
  1954.         unsupported_layout=yes
  1955.         ;;
  1956.     *)
  1957.         default_layout="$XKBLAYOUT"
  1958.         default_variant="$XKBVARIANT"
  1959.         ;;
  1960.     esac
  1961. fi
  1962.  
  1963. if [ "$got_xkboptions" = yes ]; then
  1964.     default_toggle='No toggling'
  1965.     default_switch='No temporary switch'
  1966.     default_altgr='No AltGr key'
  1967.     default_compose='No compose key'
  1968.     for option in `echo $XKBOPTIONS | sed 's/,/ /g'`; do
  1969.     case "$option" in
  1970.         grp:caps_toggle)
  1971.         default_toggle='Caps Lock';;
  1972.         grp:toggle)
  1973.         default_toggle='Right Alt';;
  1974.         grp:rctrl_toggle)
  1975.         default_toggle='Right Control';;
  1976.         grp:rshift_toggle)
  1977.         default_toggle='Right Shift';;
  1978.         grp:rwin_toggle)
  1979.         default_toggle='Right Logo key';;
  1980.         grp:menu_toggle)
  1981.         default_toggle='Menu key';;
  1982.         grp:alt_shift_toggle)
  1983.         default_toggle='Alt+Shift';;
  1984.         grp:ctrl_shift_toggle)
  1985.         default_toggle='Control+Shift';;
  1986.         grp:shift_caps_toggle)
  1987.         default_toggle='Shift+Caps Lock';;
  1988.         grp:ctrl_alt_toggle)
  1989.         default_toggle='Control+Alt';;
  1990.         grp:shifts_toggle)
  1991.         default_toggle='Both Shift keys together';;
  1992.         grp:ctrls_toggle)
  1993.         default_toggle='Both Control keys together';;
  1994.         grp:alts_toggle)
  1995.         default_toggle='Both Alt keys together';;
  1996.         grp:lalt_toggle)
  1997.         default_toggle='Left Alt';;
  1998.         grp:lctrl_toggle)
  1999.         default_toggle='Left Control';;
  2000.         grp:lshift_toggle)
  2001.         default_toggle='Left Shift';;
  2002.         grp:lwin_toggle)
  2003.         default_toggle='Left Logo key';;
  2004.         grp:switch)
  2005.         default_switch='Right Alt';;
  2006.         grp:lswitch)
  2007.         default_switch='Left Alt';;
  2008.         grp:rwin_switch)
  2009.         default_switch='Right Logo key';;
  2010.         grp:lwin_switch)
  2011.         default_switch='Left Logo key';;
  2012.         grp:win_switch)
  2013.         default_switch='Both Logo keys';;
  2014.         lv3:ralt_switch)
  2015.         default_altgr='Right Alt';;
  2016.         lv3:switch)
  2017.         default_altgr='Right Control';;
  2018.         lv3:menu_switch)
  2019.         default_altgr='Menu key';;
  2020.         lv3:rwin_switch)
  2021.         default_altgr='Right Logo key';;
  2022.         lv3:lwin_switch)
  2023.         default_altgr='Left Logo key';;
  2024.         lv3:win_switch)
  2025.         default_altgr='Both Logo keys';;
  2026.         lv3:lalt_switch)
  2027.         default_altgr='Left Alt';;
  2028.         compose:ralt)
  2029.         default_compose='Right Alt';;
  2030.         compose:rwin)
  2031.         default_compose='Right Logo key';;
  2032.         compose:rctrl)
  2033.         default_compose='Right Control';;
  2034.         compose:menu)
  2035.         default_compose='Menu key';;
  2036.         compose:caps)
  2037.         default_compose='Caps Lock';;
  2038.         grp_led:scroll)
  2039.         ;;
  2040.         *)
  2041.         unsupported_layout=yes;;
  2042.     esac
  2043.     done
  2044. fi
  2045.  
  2046. if [ "$got_full_config" = yes ]; then
  2047.     # Store values from config file into debconf db.
  2048.     
  2049.     db_set console-setup/ttys "$default_ttys"
  2050.     db_set console-setup/charmap "$default_charmap"
  2051.     db_set console-setup/codeset "$default_codeset"
  2052.     db_set console-setup/fontface "$default_fontface"
  2053.     db_set console-setup/fontsize-text "$default_fontsize"
  2054.     db_set console-setup/fontsize-fb "$default_fontsize"
  2055.     db_set console-setup/fontsize "$default_fontsize"
  2056. fi
  2057. if [ "$got_xkboptions" = yes ]; then
  2058.     db_set console-setup/toggle "$default_toggle"
  2059.     db_set console-setup/switch "$default_switch"
  2060.     db_set console-setup/altgr "$default_altgr"
  2061.     db_set console-setup/compose "$default_compose"
  2062. fi
  2063.  
  2064. #######################################################################
  2065.  
  2066. STATE=1
  2067. old_state=0
  2068. while :; do
  2069.     starting_state=$STATE
  2070.     case "$STATE" in
  2071.     1)
  2072.         if \
  2073.         ask_debconf console-setup/model $model_priority \
  2074.             model $default_model
  2075.         then
  2076.         db_set console-setup/modelcode "$RET"
  2077.         STATE=$(($STATE + 1))
  2078.         else
  2079.         STATE=$(($STATE - 1))
  2080.         fi
  2081.         ;;
  2082.     2)
  2083.         db_get console-setup/modelcode
  2084.         if \
  2085.         $detect_keyboard \
  2086.         && [ -e "/usr/share/console-setup-mini/$RET.tree" ]
  2087.         then
  2088.         db_input high console-setup/ask_detect || true
  2089.         if db_go; then
  2090.             STATE=$(($STATE + 1))
  2091.         else
  2092.             STATE=$(($STATE - 1))
  2093.         fi
  2094.         else
  2095.         STATE=$(($STATE + $STATE - $old_state))
  2096.         fi
  2097.         ;;
  2098.     3)
  2099.         db_get console-setup/modelcode
  2100.         model="$RET"
  2101.         if \
  2102.         [ "$STATE" -ge "$old_state" ] \
  2103.         && $detect_keyboard \
  2104.         && [ -e "/usr/share/console-setup-mini/$model.tree" ] \
  2105.         && db_get console-setup/ask_detect \
  2106.         && [ "$RET" = true ]
  2107.         then
  2108.         db_subst console-setup/detect FILENAME \
  2109.             "/usr/share/console-setup-mini/$model.tree"
  2110.         if db_input critical console-setup/detect && db_go; then
  2111.             db_get console-setup/detect
  2112.             detected_keyboard="$RET"
  2113.             # TODO: produce human-readable layout name
  2114.             db_subst console-setup/detected LAYOUT "$detected_keyboard"
  2115.             db_input high console-setup/detected || true
  2116.             if db_go; then
  2117.             unsupported_layout=no
  2118.             STATE=$(($STATE + 1))
  2119.             else
  2120.             detected_keyboard=
  2121.             STATE=$(($STATE - 1))
  2122.             fi
  2123.         else
  2124.             STATE=$(($STATE - 1))
  2125.         fi
  2126.         else
  2127.         detected_keyboard=
  2128.         STATE=$(($STATE + $STATE - $old_state))
  2129.         fi
  2130.         ;;
  2131.     4)
  2132.         if [ "$detected_keyboard" ]; then
  2133.         layout="${detected_keyboard%%:*}"
  2134.         db_set console-setup/layoutcode "$layout"
  2135.         # skip the question without making Debconf loop
  2136.         STATE=$(( $STATE + $STATE - $old_state ))
  2137.         elif [ "$unsupported_layout" = yes ]; then
  2138.         if [ "$STATE" -ge "$old_state" ]; then
  2139.             db_input medium console-setup/dont_ask_layout || true
  2140.             db_go || true
  2141.             db_set console-setup/layoutcode "$XKBLAYOUT"
  2142.             STATE=$(($STATE + 1))
  2143.         else
  2144.             STATE=$(($STATE - 1))
  2145.         fi
  2146.         elif \
  2147.         ask_debconf console-setup/layout "$layout_priority" \
  2148.             layout "$default_layout"
  2149.         then
  2150.         layout="$RET"
  2151.         STATE=$(($STATE + 1))
  2152.         else
  2153.         STATE=$(($STATE - 1))
  2154.         fi
  2155.         # Adjust the keyboard model for some layouts requiring extra keys.
  2156.         case $model in
  2157.         pc105|abnt2|jp106)
  2158.             case $layout in
  2159.             br)
  2160.                 model=abnt2
  2161.                 db_set console-setup/modelcode "$model"
  2162.                 ;;
  2163.             jp)
  2164.                 model=jp106
  2165.                 db_set console-setup/modelcode "$model"
  2166.                 ;;
  2167.             *)
  2168.                 model=pc105
  2169.                 db_set console-setup/modelcode "$model"
  2170.                 ;;
  2171.             esac
  2172.             ;;
  2173.         esac
  2174.         ;;
  2175.     5)
  2176.         adjust_layout=false
  2177.         if [ "$detected_keyboard" ]; then
  2178.         case $detected_keyboard in
  2179.             *:*)
  2180.             variant="${detected_keyboard#*:}"
  2181.             ;;
  2182.             *)
  2183.             variant=
  2184.             ;;
  2185.         esac
  2186.         db_set console-setup/variantcode "$variant"
  2187.         adjust_layout=:
  2188.         # skip the question without making Debconf loop
  2189.         STATE=$(( $STATE + $STATE - $old_state ))
  2190.         elif [ "$unsupported_layout" = yes ]; then
  2191.         db_set console-setup/variantcode "$XKBVARIANT"
  2192.         # skip the question without making Debconf loop
  2193.         STATE=$(( $STATE + $STATE - $old_state ))
  2194.         elif \
  2195.         ask_debconf console-setup/variant "$layout_priority" \
  2196.                     "variant\*${layout}" "$default_variant"
  2197.         then
  2198.         variant="$RET"
  2199.         adjust_layout=:
  2200.         STATE=$(($STATE + 1))
  2201.         else
  2202.         STATE=$(($STATE - 1))
  2203.         fi
  2204.         if $adjust_layout; then
  2205.         case "$layout" in
  2206.             cs)
  2207.             case "$variant" in
  2208.                 latin*)
  2209.                 latin=yes
  2210.                 real_layout=$layout
  2211.                 ;;
  2212.                 *)
  2213.                 latin=no
  2214.                 real_layout=cs,cs
  2215.                 ;;
  2216.             esac
  2217.             ;;
  2218.             jp)
  2219.             case "$variant" in
  2220.                 latin)
  2221.                 latin=yes
  2222.                 real_layout=$layout
  2223.                 ;;
  2224.                 *)
  2225.                 latin=no
  2226.                 real_layout=jp,jp
  2227.                 ;;
  2228.             esac
  2229.             ;;
  2230.             # TODO: make s.t. to not forget to update this list
  2231.             # Don't forget to update also the list in kbdcompiler
  2232.             am|ara|ben|bd|bg|bt|by|deva|ge|gh|gr|guj|guru|il|in|ir|iku|kan|kh|la|lao|lk|lt|mk|mm|mn|mv|mal|ori|pk|ru|scc|sy|syr|tel|th|tj|tam|ua|uz)
  2233.             latin=no
  2234.             real_layout=us,$layout
  2235.             ;;
  2236.             *)
  2237.             latin=yes
  2238.             real_layout=$layout
  2239.             ;;
  2240.         esac
  2241.         db_set console-setup/layoutcode "$real_layout"
  2242.         if [ "$latin" = yes ]; then
  2243.             db_set console-setup/variantcode "$variant"
  2244.         elif [ "$real_layout" = cs,cs ]; then
  2245.             case "$variant" in
  2246.             yz)
  2247.                 db_set console-setup/variantcode \
  2248.                 "latinyz,$variant"
  2249.                 ;;
  2250.             alternatequotes)
  2251.                 db_set console-setup/variantcode \
  2252.                 "latinalternatequotes,$variant"
  2253.                 ;;
  2254.             *)
  2255.                 db_set console-setup/variantcode \
  2256.                 "latin,$variant"
  2257.                 ;;
  2258.             esac
  2259.         elif [ "$real_layout" = jp,jp ]; then
  2260.             db_set console-setup/variantcode "latin,$variant"
  2261.         else
  2262.             db_set console-setup/variantcode ",$variant"
  2263.         fi
  2264.         fi
  2265.         ;;
  2266.     6)
  2267.         if [ "$unsupported_layout" = yes ]; then
  2268.         db_set console-setup/optionscode "$XKBOPTIONS"
  2269.         # skip the questions without making Debconf loop
  2270.         STATE=$(( $STATE + $STATE - $old_state ))
  2271.         else
  2272.         if [ "$latin" = yes ]; then
  2273.             db_default console-setup/toggle 'No toggling'
  2274.             db_default console-setup/switch 'No temporary switch'
  2275.         fi
  2276.         db_beginblock
  2277.         if [ "$latin" = no ]; then
  2278.             db_get console-setup/toggle
  2279.             if [ "$RET" = 'No toggling' ]; then
  2280.             db_reset console-setup/toggle
  2281.             fi
  2282.             db_input high console-setup/toggle || true
  2283.             db_input medium console-setup/switch || true
  2284.         fi
  2285.         if [ "$layout" = us ]; then
  2286.             # US keyboards don't use AltGr.
  2287.             db_default console-setup/altgr 'No AltGr key'
  2288.         fi
  2289.         db_input medium console-setup/altgr || true
  2290.         db_input medium console-setup/compose || true
  2291.         db_endblock
  2292.  
  2293.         if db_go; then 
  2294.             STATE=$(($STATE + 1))
  2295.         else
  2296.             STATE=$(($STATE - 1))
  2297.         fi
  2298.  
  2299.         db_get console-setup/toggle
  2300.         case "$RET" in
  2301.             Caps\ Lock)
  2302.                 caps_allocated=yes
  2303.                 toggle=caps_toggle;;
  2304.             Right\ Alt)
  2305.                 ralt_allocated=yes
  2306.                 toggle=toggle;;
  2307.             Right\ Control)
  2308.                 rctrl_allocated=yes
  2309.                 toggle=rctrl_toggle;;
  2310.             Right\ Shift)
  2311.                 rshift_allocated=yes
  2312.                 toggle=rshift_toggle;;
  2313.             Right\ Logo?key)
  2314.                 rwin_allocated=yes
  2315.                 toggle=rwin_toggle;;
  2316.             Menu?key)
  2317.             menu_allocated=yes
  2318.             toggle=menu_toggle;;
  2319.             Alt+Shift)
  2320.             toggle=alt_shift_toggle;;
  2321.             Control+Shift)
  2322.             toggle=ctrl_shift_toggle;;
  2323.             Shift+Caps\ Lock)
  2324.             toggle=shift_caps_toggle;;
  2325.             Control+Alt)
  2326.             toggle=ctrl_alt_toggle;;
  2327.             Both\ Shift\ keys\ together)
  2328.                 toggle=shifts_toggle;;
  2329.             Both\ Control\ keys\ together)
  2330.                 toggle=ctrls_toggle;;
  2331.             Both\ Alt\ keys\ together)
  2332.                 toggle=alts_toggle;;
  2333.             Left\ Alt)
  2334.                 lalt_allocated=yes
  2335.                 toggle=lalt_toggle;;
  2336.             Left\ Control)
  2337.                 lctrl_allocated=yes
  2338.                 toggle=lctrl_toggle;;
  2339.             Left\ Shift)
  2340.                 lshift_allocated=yes
  2341.                 toggle=lshift_toggle;;
  2342.             Left\ Logo?key)
  2343.                 lwin_allocated=yes
  2344.                 toggle=lwin_toggle;;
  2345.             No\ toggling)
  2346.                 toggle='';;
  2347.             *)
  2348.             echo Unknown toggle key option
  2349.             exit 1
  2350.             ;;
  2351.         esac
  2352.         if [ "$toggle" ]; then
  2353.             toggle=grp:$toggle
  2354.         fi
  2355.         
  2356.         db_get console-setup/switch
  2357.         switch=''
  2358.         case "$RET" in
  2359.             Right\ Alt)
  2360.                 if [ "$ralt_allocated" != yes ]; then
  2361.                 switch=switch
  2362.                 ralt_allocated=yes
  2363.                 fi;;
  2364.             Left\ Alt)
  2365.                 if [ "$lalt_allocated" != yes ]; then
  2366.                 switch=lswitch
  2367.                 lalt_allocated=yes
  2368.                 fi;;
  2369.             Right\ Logo?key)
  2370.                 if [ "$rwin_allocated" != yes ]; then
  2371.                 switch=rwin_switch
  2372.                 rwin_allocated=yes
  2373.                 fi;;
  2374.             Left\ Logo?key)
  2375.                 if [ "$lwin_allocated" != yes ]; then
  2376.                 switch=lwin_switch
  2377.                 lwin_allocated=yes
  2378.                 fi;;
  2379.             Both\ Logo?keys)
  2380.                 if \
  2381.                 [ "$rwin_allocated" != yes ] \
  2382.                 && [ "$lwin_allocated" != yes ]
  2383.             then
  2384.                 switch=win_switch
  2385.                 rwin_allocated=yes
  2386.                 lwin_allocated=yes
  2387.                 fi;;
  2388.             No\ temporary\ switch)
  2389.                 switch='';;
  2390.             *)
  2391.             echo Unknown switch key option
  2392.             exit 1
  2393.             ;;
  2394.         esac
  2395.         if [ "$switch" ]; then
  2396.             switch=grp:$switch
  2397.         fi
  2398.         
  2399.         db_get console-setup/altgr
  2400.         altgr=''
  2401.         case "$RET" in
  2402.             No?AltGr?key)
  2403.             altgr='';;
  2404.             Right?Alt)
  2405.             if [ "$ralt_allocated" != yes ]; then
  2406.                 altgr=ralt_switch
  2407.                 ralt_allocated=yes
  2408.             fi;;
  2409.             Right?Control)
  2410.             if [ "$rctrl_allocated" != yes ]; then
  2411.                 altgr=switch
  2412.                 rctrl_allocated=yes
  2413.             fi;;
  2414.             Menu?key)
  2415.             if [ "$menu_allocated" != yes ]; then
  2416.                 altgr=menu_switch
  2417.                 menu_allocated=yes
  2418.             fi;;
  2419.             Right?Logo?key)
  2420.             if [ "$rwin_allocated" != yes ]; then
  2421.                 altgr=rwin_switch
  2422.                 rwin_allocated=yes
  2423.             fi;;
  2424.             Left?Logo?key)
  2425.             if [ "$lwin_allocated" != yes ]; then
  2426.                 altgr=lwin_switch
  2427.                 lwin_allocated=yes
  2428.             fi;;
  2429.             Both?Logo?keys)
  2430.             if \
  2431.                 [ "$rwin_allocated" != yes ] \
  2432.                 && [ "$lwin_allocated" != yes ]
  2433.             then
  2434.                 altgr=win_switch
  2435.                 rwin_allocated=yes
  2436.                 lwin_allocated=yes
  2437.             fi;;
  2438.             Left?Alt)
  2439.             if [ "$lalt_allocated" != yes ]; then
  2440.                 altgr=lalt_switch
  2441.                 lalt_allocated=yes
  2442.             fi;;
  2443.             *)
  2444.             echo Unknown altgr key option
  2445.             exit 1
  2446.             ;;
  2447.         esac
  2448.         if [ "$altgr" ]; then
  2449.             altgr=lv3:$altgr
  2450.         fi
  2451.  
  2452.         db_get console-setup/compose
  2453.         compose=''
  2454.         case "$RET" in
  2455.             No?compose?key)
  2456.             compose='';;
  2457.             Right?Alt)
  2458.             if [ "$ralt_allocated" != yes ]; then
  2459.                 compose=ralt
  2460.                 ralt_allocated=yes
  2461.             fi;;
  2462.             Right?Logo?key)
  2463.             if [ "$rwin_allocated" != yes ]; then
  2464.                 compose=rwin
  2465.                 rwin_allocated=yes
  2466.             fi;;
  2467.             Right?Control)
  2468.             if [ "$rctrl_allocated" != yes ]; then
  2469.                 compose=rctrl 
  2470.                 rctrl_allocated=yes
  2471.             fi;;
  2472.             Menu?key)
  2473.             if [ "$menu_allocated" != yes ]; then
  2474.                 compose=menu
  2475.                 menu_allocated=yes
  2476.             fi;;
  2477.             Caps?Lock)
  2478.             if [ "$caps_allocated" != yes ]; then
  2479.                 compose=caps
  2480.                 caps_allocated=yes
  2481.             fi;;
  2482.             *)
  2483.             echo Unknown compose key option
  2484.             exit 1
  2485.             ;;
  2486.         esac
  2487.         if [ "$compose" ]; then
  2488.             compose=compose:$compose
  2489.         fi
  2490.         
  2491.         case "$real_layout" in
  2492.             *,*)
  2493.                 leds=grp_led:scroll;;
  2494.             *)
  2495.             leds='';;
  2496.         esac
  2497.         
  2498.         options=$(
  2499.             echo $toggle $switch $altgr $compose $leds \
  2500.             | sed -e 's/^ *//' -e 's/ *$//' -e 's/  */,/g'
  2501.         )
  2502.         db_set console-setup/optionscode "$options"
  2503.         fi
  2504.         ;;            
  2505.     7)
  2506.         if [ "$package" = console-setup-mini ]; then
  2507.         if [ "$STATE" -ge "$old_state" ]; then
  2508.             STATE=$(($STATE + 1))
  2509.         else
  2510.             STATE=$(($STATE - 1))
  2511.         fi
  2512.         charmap=UTF-8
  2513.         else
  2514.         # add commas
  2515.         choices=`echo "$charmaps" | sed -e 's/$/,/g' | sort `
  2516.         # remove newlines
  2517.         choices=`echo $choices | sed -e 's/,$//' `
  2518.         db_subst console-setup/charmap CHOICES "$choices"
  2519.         db_default console-setup/charmap "$default_charmap"
  2520.         db_input $charmap_priority console-setup/charmap || true
  2521.         if db_go; then
  2522.             STATE=$(($STATE + 1))
  2523.         else
  2524.             STATE=$(($STATE - 1))
  2525.         fi
  2526.         db_get console-setup/charmap
  2527.         charmap=$RET
  2528.         fi
  2529.         ;;
  2530.     8)
  2531.         if [ "$default_codeset" ]; then
  2532.         db_default console-setup/codeset "$default_codeset"
  2533.         fi
  2534.         db_input $codeset_priority console-setup/codeset || true
  2535.         if db_go; then
  2536.         db_get console-setup/codeset
  2537.         codeset="`encode_codeset $RET`"
  2538.         db_set console-setup/codesetcode "$codeset"
  2539.         STATE=$(($STATE + 1))
  2540.         else
  2541.         STATE=$(($STATE - 1))
  2542.         fi
  2543.         ;;
  2544.     9)
  2545.         fontfaces=`available_fontfaces`
  2546.         # add commas
  2547.         choices=`echo "$fontfaces" | sed -e 's/$/,/g'`
  2548.         # remove newlines
  2549.         choices=`echo $choices | sed -e 's/,$//'`
  2550.         db_subst console-setup/fontface CHOICES "$choices"
  2551.         if [ -z "$default_fontface" ]; then
  2552.         case "$codeset" in
  2553.             Arabic)
  2554.             default_fontface=Fixed
  2555.             ;;
  2556.             Armenian)
  2557.             default_fontface=Fixed
  2558.             ;;
  2559.             CyrAsia)
  2560.             default_fontface=Fixed
  2561.             ;;
  2562.             CyrKoi)
  2563.             default_fontface=VGA
  2564.             ;;
  2565.             CyrSlav)
  2566.             default_fontface=VGA
  2567.             ;;
  2568.             Ethiopian)
  2569.             default_fontface=Goha
  2570.             ;;
  2571.             Georgian)
  2572.             default_fontface=Fixed
  2573.             ;;
  2574.             Greek)
  2575.             default_fontface=Fixed
  2576.             ;;
  2577.             Hebrew)
  2578.             default_fontface=Fixed
  2579.             ;;
  2580.             Lao)
  2581.             default_fontface=Fixed
  2582.             ;;
  2583.             Lat15)
  2584.             default_fontface=VGA
  2585.             ;;
  2586.             Lat2)
  2587.             default_fontface=VGA
  2588.             ;;
  2589.             Lat38)
  2590.             default_fontface=Fixed
  2591.             ;;
  2592.             Lat7)
  2593.             default_fontface=VGA
  2594.             ;;
  2595.             Thai)
  2596.             default_fontface=Fixed
  2597.             ;;
  2598.             Uni1)
  2599.             default_fontface=Fixed
  2600.             ;;
  2601.             Uni2)
  2602.             default_fontface=Fixed
  2603.             ;;
  2604.             Uni3)
  2605.             default_fontface=Fixed
  2606.             ;;
  2607.             Vietnamese)
  2608.             default_fontface=Fixed
  2609.             ;;
  2610.             *)
  2611.             default_fontface=Fixed
  2612.             ;;
  2613.         esac
  2614.         fi
  2615.         db_default console-setup/fontface "$default_fontface"
  2616.         db_input medium console-setup/fontface || true
  2617.         if db_go; then
  2618.         STATE=$(($STATE + 1))
  2619.         else
  2620.         STATE=$(($STATE - 1))
  2621.         fi
  2622.         db_get console-setup/fontface
  2623.         fontface=$RET
  2624.         ;;
  2625.     10)
  2626.         fontsizes=`available_fontsizes`
  2627.         # add commas
  2628.         choices=`echo "$fontsizes" | sed -e 's/$/,/g' `
  2629.         # remove newlines
  2630.         choices=`echo $choices | sed -e 's/,$//'`
  2631.         if echo "$choices" | grep -q x; then
  2632.         size_template=console-setup/fontsize-fb
  2633.         else
  2634.         size_template=console-setup/fontsize-text
  2635.         fi
  2636.         db_subst $size_template CHOICES "$choices"
  2637.         db_input medium $size_template || true
  2638.         if db_go; then
  2639.         STATE=$(($STATE + 1))
  2640.         else
  2641.         STATE=$(($STATE - 1))
  2642.         fi
  2643.         db_get $size_template
  2644.         fontsize=$RET
  2645.         db_set console-setup/fontsize "$fontsize"
  2646.         ;;
  2647.     11)
  2648.         db_input medium console-setup/ttys || true
  2649.         if db_go; then
  2650.         STATE=$(($STATE + 1))
  2651.         else
  2652.         STATE=$(($STATE - 1))
  2653.         fi
  2654.         db_get console-setup/ttys
  2655.         ttys=$RET
  2656.         ;;
  2657.     *)
  2658.         break
  2659.         ;;
  2660.     esac
  2661.     old_state=$starting_state
  2662. done
  2663.  
  2664. if [ $STATE -eq 0 ]; then
  2665.     exit 10
  2666. fi
  2667.